Web bytecodes are the next generation code that should power Web 3.0. Web bytecodes is the way to provide language freedom to the web community. Today JavaScript is the defacto standard on the web. In the former web scripting was something that was done by unexperienced programmers that had to fix a hover effect or played a little bit with a function here and a function there. With the advent of AJAX this changed much. Now many complex applications are beeing authered using JavaScript and the XML.
Though it is positive that the Web is getting more and more towards an application platform, it is problematic to see the future of language interoperatbility over the web. Furthermore one can see that the current version of JavaScript does not live up with the demands of application programmers. Either it is too slow or things are to hard to get right. Google has even introduced the so called Google Web Toolkit, or GWT, that is all about compiling Java to JavaScript, using JavaScript as a kind of universal Web glue code.
The reason why I am proposing web bytecodes is that in the future we will see much more complex web applications, that will probably be powered by a more powerful JavaScript language, called JavaScript 2.0. I would like to use this shift in technology, to propose a much more powerful switch towards a common intermediate langauge, that is agnostic from the actual front end language, but powerful enough to support many different kinds of languages. The governance of web bytecodes should come from the W3C, which should control the evolvement of the bytecodes, as much as it controls the evolvement of other Web related standards.
Additionally the web bytecodes should be portable towards a simple JavaScript enabled browser, providing backwarts compatible for older browsers.
The bytecodes should describe the instruction set of a virtual machine, that has:
The language should support dynamic as well as static typing, should be object oriented at its fundamental, and support important programming concepts such as:
We will discuss several reference archiectures, such as: