The Web Platform is Getting Better and it is Here to Stay

The CERN laboratory, located in Geneva, was created to understand the physical secrets of our world. Particle physics research at the institute would eventually change the way we perceive the universe and its most atomic particle, the Higgs bosons, but the incidents of December of 1990 would change the world we live in, forever.


The world wide web represented as a information graph


Tim Berners Lee as a kid was fascinated by a technique called the “The Portal of Information”. It was a way to develop a mind map of things which would connect and make sense of related data. As a consultant at CERN, Tim proposed and implemented an information network for scientists to share papers and research. He came up with a protocol of his own that employed existing technologies. A document would be connected to another document through a literal link, “Hyperlink” and thus was born the Web. The web changed everything. The way we do business, consume entertainment, travel, eat, and heck even the way we fall in love.

At its core, the Web is about sharing and accessing information and one of the reasons the Web has thrived and spread is its DNA of an open platform. Why does a platform need to be open? Because an Apple, Google, or Microsoft controlling our platform would make them control the flow and access of information. The Web has no owners, it works for the advantage of all. Don’t forget that Flash is not in use because it is controlled by a corporation. The Web loves open. Another important reason the Web has thrived is the way it has developed. In the true spirit of Moore’s law it has not only evolved but it has more often revolutionized. From the early revolutions like CSS, JavaScript, and AJAX to the more recent Web 2.0 technologies like rich media and content the Web has always been at the helm of cutting edge.

Today we are at a phase where the planned and currently implemented specifications outnumber all the features of the last 25 years! Honestly I am as excited as a kid at a huge toy store, the possibilities are infinite. Excitement is contagious, so in the coming few paragraphs I will attempt to infect my excitement about the newest features and future feature plans for the biggest and the most open platform of the world.


What is ECMAScript? It is another name for JavaScript. Long ago Netscape and Sun Microsystems had a proxy war deciding the “language of the web“. The result is JavaScript and a trademark name owned by Sun Microsystems. So for all official references JavaScript is referred to as ECMAScript. ECMAScript or JavaScript is important because it powers the browser and makes the Web a programmable platform. Like it or not it’s the only language available for programming for the browser. It has gained prominence after the advent of rich media applications where the browser acts as a medium for delivery of an application experience instead of a dynamic document experience. Think of all the websites you visit every day like Gmail, Facebook, and many more which provide an app-like experience on the browser. The Web is heading there and JavaScript is its backbone. ES6 is its latest flavor right out of the W3C oven. It introduces new features like blocked scoping, template strings, modules, iterators and classes (Yes it’s 2015 and Javascript is finally bleeding edge) among other things. This will improve developer productivity to a great extent and also aid in taming the wildness of JavaScript, but the real deal is ES7. Currently in proposal phase with plans of introducing features as object.observe, bringing in native two way binding.

WebGL and Web Audio:

The Web is on a journey to become the biggest, cross platform, and only open application delivery platform. Currently it is at a stage where it supports rich media, but a true application delivery platform requires it to be able to deliver true multimedia. The Web needs some burning cars and sound effects if you pardon the metaphor. The HTML5 features of canvas and SVG are a welcome step towards it and have done a great deal to push the web forward, but we need 3D and WebGL. It’s a 3D engine based on the OpenGL model which lets you create graphics for the Web with some breathtaking results, and did I tell you it will work across all devices and OS? Well, almost.

Web Audio is an API which lets the browser manipulate and produce sound. It is still a nascent feature and the community is still starting to adopt it, but there are a few cool things which have been popping up.

Web Components

When Tim Berners Lee created the World Wide Web, he used HTML as a document definition language. The idea was to let users be producers of content and let them put it out to the world. The static document had features for tables, paragraphs, and headings among other things. With a more dynamic Web, tags for rich media like canvas, video, and audio came to existence. Now it is time for the web to go beyond that and shift from its roots. The answer is Web Components. To understand Web Components, we need to get into the inner recess of the web and learn about something called the shadow DOM. With a little configuration, we can see the shadow DOM in our browsers and, as an example, let’s take the Video tag. We see that it actually encapsulates basic elements to create a parent element, i.e., the video tag. Take the concept of shadow DOM and provide the developer the ability to create his own custom tags and we have arrived at a powerful feature, Web Components. Imagine a web page made of customized complex UI widgets, aka tags, isolated and encapsulated from the web page, but coming up with a standard is easier said than done and has several roads blocks for now. Yet the Google Polymer project aiming to act as a polyfill for Web Components is a welcome step.


A couple of years ago Mozilla started work on an ambitious project. The plan was to decide on a subset of JS which would be fast and efficient and transpile a C++ binary to that subset. The result was asm.js. Thanks to WebGL and Web Audio its power was displayed when Mozilla ported an Unreal Engine game to asm.js and made it run in the browser. It was a small step towards letting the browsers deliver binary apps, but the web isn’t impressed with small steps, it demands giant leaps. Recently on his blog Brendan Eich, the creator of JS, announced that leap. Asm.js was to die and from its ashes like a phoenix was to rise a new technology. WebAssembly, short for wasm is planned to be a low level binary target for the browser. Wasm lets the developer do low level manipulations and the binary will be allowed to be imported as a module into JavaScript. Quoting a blog post, wasm is the “ability to write most of the code in an amazing high-level language (JS) and still be able to drop down to a specialized, bare metal assembly language once in a while when we really need a boost”. Hold your horse for now. wasm is in early stages of its draft and will take more than a couple of years to get out into production. For now, the excitement is more than I can handle.


Earlier, when I mentioned the Web as an information network, I was wrong. Yes, it’s centered on sharing information, but with the evolution of the Web, it’s used as a platform for communication. The Web dictates how you communicate with the love of your life or your parents or your friends. Communication on the web is laced with proprietary standards and formats. In short, it isn’t open. Until, enter WebRTC. A real-time communication protocol, open and implemented as the standard by W3C.

Imagine every device communicating to each other through its browser powered by a P2P protocol with no control by a corporate entity. WebRTC is already here and most browsers support it and will soon have widespread usage (Demos).

Service Works

At its core, the Web works on a client server model. This introduces an annoying problem of a web app working only when network exists. Especially on mobile devices where signal strength decides the Internet connectivity, having a slow connection means a painful experience. Web apps which serve data saved in cache or by pre-fetching some data, is the domain of ‘offline first’ Web apps. Already a solution existing for this. It’s called ‘App cache’, which is a browser feature that lets the developer make part of the Web apps cached. Serving from the cache makes the app an offline app when the Internet is not available, but it is only a configuration mechanism and lacks the feature of a programmable cache. As a replacement, we have Service Workers. Service workers are currently supported in the latest releases of browsers and let the developer manage network requests and cache programmatically. It also provides a mechanism for pre-fetching data and providing a push mechanism. Service Works will make Web apps deliver an experience as close as possible to native mobile apps.