The last few weeks have witnessed a series of major web technology announcements from Google, Microsoft and Opera. Understanding what these changes means for developers requires a little background on how browsers are made.
“Closed” development is associated with corporate culture: hire hundreds of paid programmers, lock them in cubicles for years, and release proprietary software versions. Microsoft’s Internet Explorer was a product of this process: a monolithic black box.
Open source, on the other hand, accepts code from anyone who is willing to contribute to a project. The results tend to be far more changeable and unpredictable. Open source products evolve in a manner akin to software ecology: projects swap code liberally, often becoming so specialized that they branch out into their own species. Firefox, Chrome and Safari are, to various degrees, open source projects.
Well-run and active open source projects issue new versions nightly; closed-source typically releases working code every few months.
What’s happened in the last few weeks is a dramatic re-alignment of both open and closed-source browser technologies. A simple evolutionary tree would look like this:
Some highlights of this process:
- Google’s “Blink” is simply another fork in the long evolution of the Webkit layout engine, which was itself derived from an earlier open source project. It’s important to understand that forking is a transitional process: the most recent version of Chrome has a growing number of Blink components, and the code developed for it will be open to adoption by the Webkit team if they choose to use it. However, the nature of open source implies that that Blink and Webkit will drift apart as their codebases become more diverse.
- The Blink development team have stated that they do not intend to create a new vendor prefix for the browser. In fact, there is a general consensus that they will use as few CSS prefixes as possible in the rendering engine. Where necessary, Blink will use
- Chrome will carry on using the same branding, look and feel: it’s the engine under the hood that is changing, not the bodywork.
- Opera technologies will be merged into Blink, and any future browser operating under the Opera badge will use the Blink rendering engine, rather than Webkit.
- Meanwhile the Mozilla Foundation and Samsung are working on Servo, a completely new layout engine designed for multi-core processors built on the Rust programming language. While not yet integrated into Firefox, the suite of technologies would seem to be a natural fit for future products.
- Microsoft deserves credit for delivering Microsoft Edge, a browser that will recieve regular automatic updates and is strongly standards-aware while remaining backwards-compatible with sites developed for Internet Explorer. The general consensus is that the new browser has a lot of work to do before it becomes competitve with Chrome and Firefox, but it is a significant step in the right direction, and is being developed by people I know and trust.
There are many reasons behind these titanic changes in the browser landscape, but the outcomes appear positive: greater browser diversity, more standards-aware code, a better experience on mobile devices, and an increasing emphasis on speed, security, and efficiency.
Enjoy this piece? I invite you to follow me at twitter.com/dudleystorey to learn more.