Well, err, that solves the WebKit monoculture problem


Blink is the first big Google secret I've had to keep, it's been exciting and petrifying, especially that time I was drinking with someone from Mozilla and they said "You guys should totally split from WebKit" and my head expended to 3 times its normal size as I desperately tried to guess what I would say if I didn't know what I knew. Anyway, the cat's out of the bag, I need restrain myself no longer, I can finally tell everyone what I think about it:

It's interesting!

Phew. That felt good. I know it isn’t a very quotable opinion, but anything more extreme would be guesswork.

If you watch YouTube in tomorrow's Chrome, you're unlikely to witness a superior quality of acting compared to WebKit, the kittens aren't going to fall out of the screen and dance around you as you joyfully applaud. And similarly, tomorrow's Chrome won't refuse to open because you haven't told Google+ the blood types of your children.

Damnit, now I have to test another browser?

This isn't going to change the amount of testing you need to do. If you test in Chrome but not Safari, you're doing it wrong. For starters, they’ve never used an identical build of WebKit, and even then, WebKit is just the layout engine. Safari and Chrome always had different JavaScript engines, different CPU & GPU rendering, and different network stacks (see http://paulirish.com/2013/webkit-for-developers/).

With an increasing number of build and run-time flags, the different ports of WebKit have been diverging for years. For Chrome, it reached a point where keeping the Chromey bits separate from the WebKitty bits was getting in the way of performance and security improvements. Some of these changes are related to Chrome’s multi-process model, so don’t make sense to the world-of-WebKit, and it’d be unfair to try to shoehorn those requirements into that community.

I lamented the loss of Opera's engine, Presto, and see Blink as a rebalancing of engine diversity. I hope Blink can do for layout & rendering what V8 did for JavaScript, although the improvements will be more gradual.

As developers, we bear the scars from days where "another engine" meant the difference between IE6 and Firefox 3 (wow "bear the scars", you can tell I've been watching Game of Thrones), but modern browsers are more compatible, see the similarities between Firefox and Chrome which use completely different engines.

Blink won't introduce its own vendor prefix either, it'll retain "-webkit-" for features that already use it, removing them after they land unprefixed. New experimental features can be activated in about:flags in the Dev and Canary builds.

So basically, Apple wouldn't let Google land Dart into WebKit?

I assume you're thinking that, because I thought that. Is this Google's Henry VIII move? Well, from what I've seen so far, Google seem pretty serious about preventing Blink becoming a Google-born feature party. Exploration of new features is being done in the open - http://www.chromestatus.com/features, policies will be published on adopting new features and when they may be considered stable.

To me, the pattern for feature adoption sounds rather Mozilla-like (http://lists.w3.org/Archives/Public/public-webapps/2012OctDec/0731.html), in a good way. I'm sure we'll see Dev and Canary builds will be used to trial non-standard features, much as they as now, but rigorous processes are being put in place to select what gets promoted to stable, and when.

So what exactly's going to change?

It'll be like it is now, but harderbetterfasterstronger. Except harder, that doesn't make sense. Unless I mean "harder to break the sandbox of", yes, that's what I mean. Our lovely developer FAQ (http://www.chromium.org/blink/developer-faq) covers some of things the team is looking at.

In short, DON'T PANIC. It sounds like a huge change, but in terms of day-to-day development, the internet will still be the internet. Just as WebKit grew out of KHTML, Blink grows out of WebKit. It's interesting!

For more info, check out the developer FAQ http://www.chromium.org/blink/developer-faq
Shared publiclyView activity