Browsers need bytecode


This week as I pondered various discussions at the Defrag conference I found myself again frustrated that we do not yet have a bytecode interpreter as a standard browser feature.

It has been apparent for a long time that JavaScript is not a foundation we can grow forever on. The current ubiquity and reliance on JS is an accident of history, like so many ‘standards’. Efforts have existed for awhile to extend beyond the limitations of JS. The number of projects that have been created to compile other languages to JS strongly signals the need for something better.

That something better is emphatically not Dart. Nor is it NaCl. Both of those projects stem from noble intent but are tragically misguided and interesting evidence of fuzzy mission and management.

We are in a dangerous place right now. Google makes a lot of noise about being ‘open’ but they are pushing ahead with non-standard web technology right at the moment when both Microsoft and Adobe, arguably the biggest offenders of proprietary web technology over the last decade, are coming into the HTML5 fold.

Interestingly there is already a bytecode standard and runtime we could use. It has an open standardized specification and very solid cross-platform open-source implementation that runs on everything from mainframes to cellphones. There are dozens of languages that compile to it. More than a decade of performance tweaking. First-class tooling support on Mac, Linux and Windows. It is even able to support multiple cores and has first class security sandboxing. Can you name it?