I have two ambitions in life: to be the first person to define Web 3.0 in a meaningful way; and to be able to reform Atomic Kitten to sing at my next birthday. Only one of these is achievable so here goes.
The Web is changing quite drastically and there are ten key factors that define the next "Web" hereafter as Web 3.0:
- The dropping of legacy browsers like Internet Explorer 6, 7 and 8; and the subsequent focus around HTML 5 and ECMAScript 5.1 capable browsers
- The second generational move away from pure RWD as a golden bullet solution
- The increase in the performance offered by next generation web browsers powered by WebKit2 and Blink that can take advantage of multi-CPU/GPU chipsets
- The shift into 4 tier architectures and API driven solutions with API Gateways and reduced middle tiers, that enable a much higher scalability that was previously considered possible
- The emergence of Cloud Transformation, Cloud Build, Cloud Cross-compilation and Mobile Backend as a Service solutions
- The increase in power of PhoneGap solutions through better Web View browser based capabilities (Android 4.4 / iOS 8)
The first point is a very distinct abandonment of legacy browsers and a full adoption of ECMAScript 5.1 and HTML5. This is going to upset a lot of people but the truth of the matter is JQuery 2.0 and AngularJS have both taken this approach and support Internet Explorer 9 and above. That is not to say you cannot do a few hacks to get Angular working on Internet Explorer or using the 1.X branch of JQuery, but the wheels have been set in motion. Why have a bloated library that is twice the size due to browsers not supporting the current feature track.
- The difference between == and ===
- That an array is not actually an array at all and works much slower than expected
- What prototypal inheritance is and why you shouldn’t make code look like Java (pseudo-classical inheritance)
- That the DOM is actually written in C/C++ and the context switch is why it is so slow working with DOM based libraries like JQuery
- How a Closure actually works
HTML5 is evolving to offer built in templating support, the ability to watch objects (which will speed up Angular) and Web Components (which offer Angular Directives). The native level support will offer a massive performance boost to frameworks having to fake all these features like Polymer and Angular. It will also encourage people who are not familiar with these next generational frameworks to get in on the action. As I am from a gaming background then I always complain that TCP (Web Sockets) is not genuinely real-time, so I look forward to seeing UDP (WebRTC) solutions being delivered like Desktop Sharing in Chrome 34.
Cloud Mobile Backend as a Service and Platform as a Service are offering small companies the ability to start working with the server side as well as the client side. Whereas finding an Application Service Provider (ASP) that supported Java EE and building a set of Java EE servers was a bit of a hassle, you can easily get a free Heroku account and create Node/Express servers in minutes rather than hours. The combination of MongoDB, Express, Angular and Node (the MEAN stack) will enable complete product solutions to be built at budget prices.
People often forget, when they talk about HTML5 performance, that the current web browsers cannot yet take advantage of multi-CPU/GPU chipsets that have been around for many years. If an Apple device has a quad-core CPU and quad-core GPU but the web browser can only work on a single processor then clearly we are getting a fraction of the performance – and it is not a quarter or a sixteenth as this is exponential! Soon this will change and performance should not be an issue for a time.
A few recent scalability nightmares including the season premier of Game of Thrones Series 4 on Netflix and the original Iron Man Blu-Ray BD Live feature, which both boasted the most simultaneous web hits of their generation. A shift into 4 tier architectures, with high end scalability empowered by asynchronous backend systems, and effective Cloud utilisation will be required to offer new highly desirable services. This will include more API driven approaches using API Gateways and a lighter middle tier moving away from monolithic Java EE heavy middleware solutions.
Finally the last thing holding back HTML5 was the massive drop in functionality and performance when it was wrapped using a Web View. Luckily Android 4.4 offers us Chrome 30 support and using Cloud Build systems then we can even access the 3D features of Chrome 33. Following suite iOS 8 now enables us to have web applications that can use Nitro (their JIT solution). It will take time for PhoneGap to catch up with some of these new advancements of course, but the future is even looking better for wrapped web.
Now all we need is a way to monetize and distribute pure web applications on a popular operating system with a profitable App Store and we really have a reason to sing the name of “Web 3.0”.