From nczonline.net, with love.
View this email in your browser

The Rise of WebAssembly

Hi everyone,

I've spent the past month or so getting very excited about a new technology: WebAssembly. WebAssembly, as the name implies, is designed to be a low-level instruction set for web browsers. The rise of compile-to-JavaScript languages such as CoffeeScript, TypeScript, and even ECMAScript 6/2015 has proven that people want some measure of choice for scripting the browser. But JavaScript was never really intended to be a compile target.

WebAssembly, on the other hand, is being designed from the start as a compile target. That means it can deviate from JavaScript semantics to better serve languages that want more than to simply provide syntactic sugar for JavaScript patterns.  New languages can then compile to WebAssembly instead of JavaScript, allowing JavaScript to continue evolving as the high-level language that it is.

As an added bonus, WebAssembly has a binary format in addition to a text-based one. The binary format is not a bytecode, but rather a binary encoding of an abstract syntax tree (AST). ASTs are an intermediate representation of a program that are constructed by parsing the source code. Ultimately, it's the AST that gets executed by the JavaScript engine. With this binary format, you will be able to deliver the AST to the browser directly, which still speed up execution by reminding the parse phase completely.

In the future, I'd expect JavaScript to also be compiled to WebAssembly before being delivered to the browser. At that point, JavaScript will likely be just one of many available languages that can be run natively in the browser via WebAssembly. We are a long way from there, but WebAssembly could ultimately be what moves the web into a post-JavaScript era. I'd strongly suggest you follow the development of WebAssembly.

Be well.

-N
JavaScript WeeklySponsor: JavaScript Weekly
A free, once-weekly e-mail roundup of JavaScript news and articles.  

Recommended Links

Inside Risks: Routing money, not packets (PDF)
Talks about the United States Net Neutrality debate as it relates to game theory, and how the FCC ruling "in favor" of Net Neutrality doesn't necessarily mean what we think it means. Using game theory, the author delves into the real issues with Internet content distribution and how the U.S. may not actually be in a better state after the ruling. Vishal Misra

React + Performance = ? (article)
While React is often touted as being faster than doing a lot of DOM updates, there hasn't been a lot of experimentation to quantify this claim. This article goes deep, looking at performance as DOM size increases on both desktop and mobile, as well as comparing that to vanilla JavaScript. Paul Lewis

Google's Guide to Designing with Empathy (article)
Accessibility is often an afterthought to web applications, but not at Google. Astrid Weber and Jen Devins share their top recommendations for learning to design user experiences with empathy. John Brownlee

Recommended Book

Effective JavaScript is one of my favorite JavaScript books. Written by David Herman, who has been working on JavaScript engines at Mozilla for a while, this book delves into some of the intricacies of the language. This is less a how-to book than it is a "hear's something I bet you didn't know" book. The writing is clear and concise, and I can't recommend this book enough for those who wants to take their understanding of JavaScript to the next level.

Recently on NCZOnline

No RSS items found.

Feedback

Love this newsletter? Hate it? Have suggestions for how to make it better? Just reply to this email. I will read every response.
Copyright © 2015 Nicholas C. Zakas, All rights reserved.


unsubscribe from this list    update subscription preferences