Beyond JavaScript: A new hope for a high-performance Web

While Famous founder Steve Newcomb holds skeptical view of WebAssembly, the project draws praise from other quarters

image of jumping businessman 166108927
Thinkstock

WebAssembly, an effort to diversify language support on the Web and speed up applications, is drawing both applause and skepticism.

While an analyst at Ovum is mostly applauding the technology, the founder of JavaScript presentation engine maker Famous is skeptical. With WebAssembly, technologists from Mozilla, Microsoft, Google, and WebKit are defining a portable binary format to serve as a compilation target for the Web for increased flexibility with different languages. The work provides a way to compile source code for the programmatic parts of Web applications so that they can be processed more quickly by the browser.

“I'd love to see WebAssembly happen, but I am careful to claim victory. Apple will be the key,” said Famous founder Steve Newcomb in an email. “For now I wait.” He questioned whether the vendor cooperation would be there for WebAssembly to succeed. “Good technology is exciting, but ubiquity crowns kings. How many times have we seen good technology (like NaCl) rise only to see it fall because either Apple, Google, or Microsoft ultimately refuse to play?”

Another question is what capabilities can be moved from compiled languages to JavaScript, he said.  “Do that and you get ubiquity for free. Do that and you make the source visible. Do that and you democratize development.” Famous, for its part, has moved rendering and animation from the browser to JavaScript, he added.  

But analyst Michael Azoff of Ovum lauded the effort. “WebAssembly is an intriguing development that has been under wraps until recently brought into the open by the key players: Microsoft, Google, and Mozilla -- together owners of the largest share of Web browsers, and announced once all three key vendors had reached a critical point of consensus.”

The technology makes use of LLVM to compile source code (currently C/C++), so it will run on JavaScript engines, Azoff said in an email. “By compiling client-side application code it allows open standards-based Web and mobile applications to be optimized and run faster than JavaScript, but these codes still run slower than running pure native code.”

Advantages include optimized and smaller loads, and hence faster load times, along with the expected opening of WebAssembly to other languages, said Azoff. “Java and Python will be most welcomed. This evolution of open Web standards technology will hopefully make JavaScript a less critical member. The language became a core component of open standards almost by accident -- it was never conceived for this role when first created and has shortcomings for such a key role.”

WebAssembly, he said, will hopefully remove this burden off JavaScript and leave it largely for UI-related tasks. “WebAssembly is therefore most welcome and will provide a good alternative to native development on mobile. It will be interesting to see what hybrid frameworks like Apache Cordova make of WebAssembly.”

JavaScript inventor Brendan Eich in his own blog last week described WebAssembly as “new intermediate representation for safe code on the Web.” In the long run, WebAssembly should be able to diverge from JavaScript semantics to serve as a common object-level format for multiple source-level programming languages, said Eich.

WebAssembly is designed to be a complement, not replace, JavaScript, according to a FAQ on the project. “While WebAssembly will, over time, allow many languages to be compiled to the Web, JavaScript has an incredible amount of momentum and will remain the single, privileged dynamic language of the Web,” the FAQ states. “Furthermore, it is expected that JavaScript and WebAssembly will be used together in a number of configurations.”

Copyright © 2015 IDG Communications, Inc.