Tearing down the multicore barrier for web applications

We are being confronted with two phenomena that will greatly influence the way people experience the internet. On one hand the browser, with JavaScript as embedded programming language, is getting more important as application delivery platform. On the other hand we are confronted with the multicore revolution. Both desktop machines and mobile devices are already equipped with processors that contain multiple cores. Applications that take advantage of the underlying parallel hardware are able to execute tasks in parallel, which benefits the performance and responsiveness of those applications. Despite the fact that many desktop applications already make use of multiple cores during their execution, the multicore revolution has mostly ignored web applications, leaving the potentential processing power on the client-side virtually unused. To keep up with the demand for ever increasing performance coupled to acceptable response times, browser applications will have to make use of multiple cores during execution. This is possible by designing them with concurrency in mind. Web Workers1 is a standard JavaScript API that makes it possible to add actor-like concurrency to an application.