Blink is another example of what happens with open source software
Yesterday, Google announced they are going to fork Webkit, and launching the fork as “Blink”. They are going to start iterating Blink away from Webkit as its own “open source” project. So what have we learned from Google with their announcement?
- We should always be weary of a corporation’s motive and participation in open source projects.
- Open-ness is only great until it’s better for you to be closed.
- Browser fragmentation is only going to get worse, not better.
Oh, the irony. It was almost a decade ago, when Apple decided to fork KHTML to create their own browser engine. It turned into a controversy as the KHTML community became pretty upset with Apple’s begrudging contribution. Not only was Apple’s contribution sporadic, but often done in massive chunks of code without support. It took the KHTML community a lot of work to absorb Apple’s contribution back into their code.
That situation was not resolved until Apple decided to just release everything into open source and gave people access to their code repo (BTW, for those who are nostalgic, it was a CVS repo… that seemed like a century ago). Guess what that open source project turned out to be? — That’s right, Webkit.
Open source is about being opportunistic
I think a lot of us like to think that open source software development is all about altruism, and a few open source projects really turned out that way. For the most part, open source isn’t what we had hoped and dreamed. Most open source projects has backing from major players with more resource, and they’re not really open to just everyone who likes to contribute to the project. Of course, if we simply allowed anyone to contribute to any open source project, it would be a logistic nightmare. However there is a difference between a moderated community versus one with major commercial entities with controlling interest.
Google and Apple are the two major contributor to Webkit, and arguably between the two companies there aren’t a whole lot of room left for anyone else to control the direction of the project. Indeed, according to CNet’s article, there has been friction in the relationship as both seek to influence the project in their own ways.
“Previously, Google’s Android browser was a separate project, although based on WebKit, but the company pulled it into the main WebKit code base as it built Chrome for Android.
And Apple is doing the same thing, “upstreaming” elements of its iOS browser into the main WebKit project rather than maintaining them downstream in a separate software repository[…]
Apple’s iOS move illustrated some frictions between Google and Apple engineers.”
So the question here is, why did either of these companies chose an open source platform to build their browser on at all? It’s all about resources. Open source projects means you get free resources, and there’s a point in the development of a software where the community/outside contribution is extremely helpful. Even if you were to discount the number out third party contributors that isn’t Apple or Google, you are still getting “free help” from the other major contributor.
Apple started Webkit, and they took KHTML, a smaller project to a level of maturity that probably would’ve taken longer to reach on their own. Of course, Apple’s decision to release Webkit as open source had a lot to do with PR, as they were getting a lot of flak at the time for what some would consider “stealing” KHTML, but it had even more to do with resources.
Once Webkit reached a level of maturity, it became easier for Apple to solicit outside help to continuously improve the product instead of developing everything internally. Google hopped onboard because they needed a mature platform to jump start Chrome. It’s much faster-to-mark to extend a stable, proven platform then to create the entire browser engine from the ground up. Apple and Google were also much more friendly to each other back in those days.
Now Google has Android and Chrome OS, Apple has iOS and OS X, both have reasons to make their own platform more specialized and catering only to their own needs. Google’s message about Blink being an “open source project” is clear: “Come work on our project instead of sticking with Webkit, it’ll be better and more fun, trust us!”
In the end, Webkit was an open source project in function, but certainly not in the supposed utopian spirit, because it had always been controlled by big companies looking to further their own strategic placements.
Openness doesn’t last forever
I feel like in the past few years, we’re coming to the end (or maybe it’s the beginning) of the current tech cycle, where we used open source and community to establish new platforms and businesses, and now are frantically trying to stake our claims firmly in the ground and close everything back up as the the world come to another term of maturity.
Twitter had a large community of developers salivating at the opportunity to make the next killer Twitter app; instead they closed off their API and focused on their own strategy to profitability. Any company has the right to ensure their own profitability and survival, but a lot of us seemed to have forgotten that in the age of free services and apps on the internet. Consequently we should never forget that companies are eventually going to have to make profit, and we are the consumers.
Google turned off all other sharing option from Google Reader a while ago, and now they’re closing off Google Reader completely in what many speculates is a move to eventually get users to interact with Google+ for their news. It doesn’t stop there, Google also turned off CalDAV on Google Calendar, an open standard for calendar services, and instead is insisting that people use their own calendar API. To a smaller degree, even turning off EAS (Exchange ActiveSync) for free Google Apps customers is a part of the strategic shift. Google is creating their own walled garden, with their software services, social services, and eventually, hardware platform.
The forking of Blink has as much to do with hardware, and Google hinted as much:
“Chromium has a very different multiprocess architecture than the other WebKit-based browsers,” said Alex Komoroske, product manager for Google’s Open Web Platform team.
What does this mean? Multi-process enhancements has everything to do with their hardware platform. Right now Android phones are often running quad-core processors with higher power than iPhone, but still just barely equal or underperform iPhone’s less powerful hardware. Going beyond just mobile devices, there’s the ChromeBook.
Google just put out their first high powered, retina-quality display ChromeBook with one major problem: There’s no software on ChromeOS to justify the hardware. Granted, the original vision of ChromeOS is for low-powered, low-cost laptops. It’s pretty clear that market is not highly profitable, and people aren’t flocking to ChromeBooks like crazy. They’d just buy a tablet and be done with it.
Instead, now they must create a platform that can justify higher powered, premium machines, that can also show that ChromeOS, browser-based apps can be just as good as any other OS counterpart. So what do you have to do first? Make sure that browser engine is up to par, with direct access to the hardware so developers can build truly good apps.
I hate web browsers
Well, to be more accurate, I hate the fragmentation of browsers. There was a small period of time where it seems like the browser war might finally come to an amicable resolution of a few major players and very little variance in standardized support. IE was dying (hooray!), Webkit was winning, and Mozilla is somewhere in there still surviving and just dragging along.
Turns out IE isn’t dead yet, Mozilla is still dragging along, and Webkit is now split with the definite possibility of seeing features that will be set apart from the standards. What makes it even worse is you now are multiplying each browser engine by the number of hardware platform it represents. Mobile version of each browser, the variances in mobile device sizes.
I’m sure this whole mess is just going to get messier as Blink evolves, and somehow Google will try to meld that into ChromeOS, and somehow meld ChromeOS into Android. Perhaps this will also give Apple a swift kick in the butt and make them work harder on Safari and mobile Safari. The real loser out of the whole thing is still Mozilla, because they’ve just been automatically dropped from 3rd to 4th place by the introduction of another contender.