 I am Gabriele Falazca, a front-end developer in Surzense, an Italian company. Mozilla Tech Speaker and Rob J.S. Member and so on. Before I talk about your boss and me, I want to make you a recap of the internet history. Let's start. As you see, in the year 1990, the web pages was only starting HTML content. After some years, the pages are becoming dynamic because the server can reach the request and elaborate the data and generate... Okay. And generate... And generate an optimized page for a determinate the request. Today, the server return only data in most cases. So return JSON and the web page is built directly from the client. Okay. And the client is JavaScript that have to build the page. JavaScript is the only language that can run in a browser. But JavaScript was designed for manage the user interaction with the DOM. Now it's evolved, but now you can write a complete web application. But he's an artwork for the browser. Okay. And how to speed up our application with a framework or with a pre-compilator that generates JavaScript very optimized. But there is a new step of the building web page. Can web page run at hardware native speed? Yes. With WebAssembly. WebAssembly is a new format for the compilation to the web. It's a sort of assembly that run in a browser at nothing performance. Don't worry because it's not a binary blob put in your browser from the network. But it's a sort of human readable bytecode and it's compiled around time. You can write your net code and compile it with the LLVM WebAssembly target. And after JavaScript fetch this module and compile it around time. Okay. At this moment WebAssembly is an MVP. Okay. And let's see the past milestone of WebAssembly and other history. Okay. In the April 2015 it started was born the community group of WebAssembly. In June there is the public announcement of the technology. In March 2016 they are defined the core feature and how to implement this. In October they are announced the browser preview of WebAssembly. And after in March 2017 WebAssembly has reached the cross browser consensus. In this moment WebAssembly is from February 2018 was released the specification, the draft of the specification on 1.0 release. Okay. But is a draft is frequently updated and last update is the day before yesterday. So it's very recent. Okay. This draft defines the specification about the core, the JavaScript interface and Web API. Okay. And for each of these parts we can have a separate talk because they are very long and complex to speech. Okay. The core specification defines rules about syntax and naming convention, building, validation and execution and define the standard of the binary format, the types and the values of the technology. The JavaScript API defines rules about the interactions between WebAssembly models and JavaScript how to store data and passing data between these two actors and the sandboxing because of WebAssembly models were running sandbox and environment for obvious security reasons. Okay. And the Web API defines rules about the model compilation, the model instantiation and about interaction between the DOM and the models. Okay. Let's see some resources. Okay. There are some resources for using WebAssembly. Let's start with a demo. This is an OpenGL demo. Don't see. Okay. This is a game right in OpenGL compiled in WebAssembly. So the compilation is around time. Okay. And this is an OpenGL demo. This is a great tool where you can write your code in C++ and then you can create a demo in C++ and then you can create a demo in C++ and then you can create a demo in C++ just for demo. This is a great tool where you can write your code in C++ and it shows all the steps for compile it from C to assembly passing from the wasn't part. Okay. If I compile this simple function, okay. The mid tab is the format that arrived to the browser and after there is the compiled assembly. Another tool is the WebAssembly Studio. An online idea for making things, for experimenting with WebAssembly. I try to build something, but don't work. It's a beta version and a little bit bucketed. Okay. If you have some questions. Thank you so much. Okay. He's over there. Hi. Can I ask what's the status of DOM manipulation in WebAssembly? That's the thing that's from just cutting out JavaScript together at the moment, I think. Thanks. I want to inform all of you that this afternoon at 4.40 p.m., we have another talk about WebAssembly and Rust. So if someone of you want to continue to follow these topics, they can. Any other questions for Gabriele? Yes. Is the IDE we're seeing right now actually written in WebAssembly? Out of curiosity. The IDE that we're seeing right now, has it been written in WebAssembly? Okay. Well, another question. Yeah. Thank you for the talk. Well, the WebAssembly standard is supported by a lot of major companies. What about toolings, for example, M-scripten? Who's supporting it? And what is the state of M-scripten? Or probably any road map. Thank you. I mean any road map for these tools. Thank you so much. Any other question? Any other question? Okay. Yes. Can we use a GPU with WebAssembly? Any other question? Yeah. Sorry. What is being actually built with WebAssembly, other than games? What are people using it for, other than building games? Any other question? Yes. A quick question about the editor. Is that VS Code or Monaco? Is that VS Code or Monaco that's based on? I think it's Monaco editor. It's the web version of VS Code. Any other question? No, I have one question. Sorry. But if I want to create DLL, for example, for elaborating audio signal. Okay. Okay. I can. Okay. Any other question for Gabriele? No? Thank you so much, Gabriele. Thank you, all of you. So we will restart at 2 and 10.