The Next Big Thing: Native-App Performance Through A Browser
Submitted by Edward J. Correia on
Prior to the SIMD.js project, SIMD instructions and efficiencies have been unavailable to JavaScript programmers. "We have solved that problem," said Haghighat. "Now you can program in JavaScript and it is directly mapped in a guaranteed way to SIMD instructions." The project so far has been implemented SIMD.js support in the runtimes of Firefox and Chromium, the open source version of Chrome. The test program is pure JavaScript with a SIMD object added in, but is compatible with any browser, he said. "It will run on architecture that doesn't have SIMD, but when it's available, it will take advantage of that."
Haghighat and his team have already submitted the full patch to Chromium and are implementing SIMD.js in smaller pieces in Firefox. Over the summer, ECMAscript, the JavaScript standardization body, agreed unanimously to include SIMD.js in the JavaScript standard.
But bringing SIMD to browsers is just the most recent step in the evolution of HTML5, which Haghighat called an umbrella term that encompasses the work being done to bring native-like capabilities to the browser. "HTML5 brings the largest set of innovations to the web since the introduction of the browser," he said. "These capabilities closed user experience gap between the web platform and the native model, and they transition the browser into a complete application platform."
In the past couple of years, HTML5 has seen Canvas for 2D graphics manipulation, native video playback support, web workers for background threading and parallelism, access to host hardware for device orientation and real time communication through the W3C's WebRTC spec. Haghighat's work also includes APIs for host-based audio, cameras, Wi-Fi and NFC, the latter working group which Intel chairs. As HTML5 becomes more powerful and gains access to the host hardware, it begins to affect the operating system. "No longer is differentiation based on OS stickiness," said Haghighat. "Competition boils down to how well your HTML5 runtime performs and what services are available to your platform and the operating system's role essentially becomes marginalized."