What programming language provides low-level WebAssembly

Mozilla introduced Firefox browser 52 - the latest version of the Web browser to the operating system Windows XP. There have been important changes: facilitated a connection to the hotspot points that require logging into the browser appears hazard if necessary enter a password in unsecured bond was eliminated NPAPI support plugins, except Flash, were closed 28 vulnerabilities . But nothing can compare to the main and fundamental innovation - support the programming language of low WebAssembly (wasm). This is a new assembly, which is considered one of the most significant innovations in web platforms over the last decade. That is lacking in JavaScript.


Programmers and developers explained why there is need for the creation of WebAssembly. The reason is that early in JavaScript was designed as a lightweight programming language to create simple scripts. Nobody imagined that so he will grow and it will start to be used in this way. JavaScript was invented for beginners in programming suitable for example for the creation of some form in the website.Google was experimenting with Native Client API). Podezikat asm.js behaved so well that soon became clear: it is the unification of all the major software companies in the creation of a new joint project to move around the web far ahead. The programming language of low WebAssembly no problems working with JavaScript and allows use of web applications with much higher speed and performance - almost like a built-in operating systems applications. Now it becomes possible launch in the browser fast 3D gaming systems for automatic design, video editors, graphic editors, complex computing, video encoding - practically everything. Over time, many existing web applications - email, social networks, text editors, and JavaScript frameworks will start using WebAssembly. This will substantially increase the speed of loading and dramatically increase their productivity and speed of operation. Unlike other approaches, such as Flash, which requires installation of the plugin in the browser, to achieve high-speed operation, WebAssembly fully fits into today's web platform. This is an open standard and compatible integrated into browsers. This means that developers can freely use WebAssembly intensive CPU calculations (compression, recognition of human faces, physics) directly to the corresponding web applications that use JavaScript. WebAssembly is an open standard developed jointly by Mozilla, Google, Microsoft and Apple. This is actually a group of four most common web browsers and can say that WebAssembly will become the universal standard.  Google announced that it will provide support WebAssembly the next version of Chrome (57), and Microsoft is working on this implementation in Edge. The new programming language from low will become a kind of addition to JavaScript and will eventually begin to work wherever works JS: in all browsers and in all environments like Node.js. Who will benefit from the use of WebAssembly? It is not only about writing new programs wasm. By compilers such as Emscripten goals games and have long done desktop programs can be portal for the Web. C / C ++ code used in desktop applications using this compiler will run in the browser with almost the same speed with which the original work program. In addition to C / C ++, the programming language Rust also realized maintenance WebAssembly. Katoprimer we can look Demonstration program Zen Garden (required is a desktop version of the Firefox browser 52).  JavaScript function call functions WebAssembly and vice versa. That is, within the same program it is possible to write source code in the programming language of high level JavaScript and from time to time to switch to C / C ++ / Rust in the most problematic areas and slow the program.
Since then much has changed. Modern Web applications are complex computer programs with client and server code, most of which is written in JavaScript. Despite the progress in the development of the JavaScript itself and all attempts to create high Engines for speedy implementation of JavaScript, almost did not work, because this is not possible because JavaScript has specific restrictions. The browser simply can not comply with this code as fast as processor instructions executed in the operating system. Mozilla first thought to create a sort of virtual machine in the browser, which can run code from low level and a few years ago demonstrated asm.js (then
Programmers will gradually begin to utilize and upgrade modules written in WebAssembly, and distribute them as now used various JavaScript libraries. Already set up and develop different programming tools WebAssembly as compilers, debuggers, works on maintenance of multi-threaded operation and parallel algorithms. "In a sense WebAssembly changed the concept of web programmer" - said David Bryant (David Bryant), head of development platforms in Mozilla. "This changes the fundamental properties of the web space." Indeed, it is now possible porting of standard C / C ++ programs to launch and execution in the browser, and soon the same will happen to other programming languages ​​like Java, Swift, C #, which will be compatible with standard Web platform . Thus, all programmers will eventually become and web programmers.