On July 17 Google, Microsoft and Mozilla announced their collective project – WebAssembly (short – wasm). Apple is also involved in it, because WebKit joined developers team. An open community has been already created on GitHub.
WebAssembly is going to be a new binary format for web browsers that can give 20 times faster performance. The idea is to make an ability to compile code written in different programming languages for browsers and execute it inside the JavaScript engine. C/C++ were announced as first ones to try.
This news sounds great, because it was announced not by a small group of enthusiasts, but by web giants. It is obvious that the problem usually is not the performance. The problem is the consensus between all web browsers and platforms. And the only way to overcome it effectively is a compromise between all of the major players, acception of a standard with which all agree.
But what does entering of other languages into interaction between users and browsers mean for JavaScript, which always was the only option for this action?
Despite the fact that there are lots of voices on the web shouting that WebAssembly is going to bury JavaScript, it certainly won’t happen. First of all, popularity of a programming language is determined not by its syntax, but by a number of people who work with it, by developers who make new applications and software every day. New programming languages appear from year to year and experts may say they are somehow better than existing ones, but if nobody uses them, they actually are going to be forgotten. At the same time, existing and “popular” ones are developing, getting filled up with new libraries, preparing more and more solutions to solve particular problems of the web.
Additional arguments for the long life of JS are given by wasm founders themselves. They say that the aim is not to replace JavaScript, but to add more functionality, make it more powerful and increase the speed of code running. So, the solution probably can satisfy both apologists and critics of JS: increasing JS productivity and ability to compile other languages.
There are also additional questions like will it be possible to see the source code of website (with a simple Ctrl+U) or we’ll see only a huge list of a binary code, unable to understand it without pulling it back to decoder. Another one – would it be easy to debug errors in WebAssembly? There are even concerns that release of wasm may mean the end of the Open Web.
Finally, this project is at the very early stage and no one gives a word about when this new bytecode for the web will be done. It is also difficult to say what it will look like in the end. That’s why we can’t say for sure how it will influence the web or particular programming languages. There are too many questions to ask and too many uncertain things to predict.