Is this JavaScript's ultimate step towards world domination? Webkit is a full strength industrial HTML rendering engine - and guess what so is webkit.js, only it's a JavaScript program. So who needs a browser?

OK, I admit that webkit.js isn't actually "industrial strength" at the moment, but it is another example of what you can do when you think outside the box. The method is straightforward - take the current WebKit code and feed it through the Emscripten C++/C to JavaScript compiler and the rest is a matter of making it work. In this case "the rest" is quite a lot of work.

Currently there is a lot that isn't working and the code is more a proof of concept than anything practical. It can, however, render some tags onto a WebGL surface in Chrome.

At the moment this is the work of a single programmer, Trevor Linton, so if you feel like a challenge visit the GitHub site to see if there is anything you can do. The goals of the project are:

Produce a renderer in pure JavaScript that supports rendering to WebGL/Canvas contexts.

Notice the final goal - a JavaScript browser that runs under node.js. Yes you could in theory get away with a "browser" that was 100% JavaScript. There would be no HTML rendering engine just a JavaScript engine and the rest would be JavaScript code.

Are there any advantages to this?

The most obvious one is that JavaScript finds it very easy to interwork with JavaScript, so perhaps the split between code that makes up the browser and code in the web page would vanish.

This is partly the case with the Firefox Gecko layout engine where an HTML like markup, XUL, provides the user interface, i.e the chrome, and XPCOM allows JavaScript access. But a pure JavaScript rendering engine could provide another level of "chrome-client" interaction.

When you think about it, a JavaScript HTML layout engine makes a lot of sense.

Over two thirds of the adult population in developed countries have poor or non-existent computer skills. By and large this is the audience you are developing apps and interfaces for - and it is impor [ ... ]