by Peter Bright - Apr 8, 2013
Does WebKit face a troubled future now that Google is gone?Aggressive streamlining of Blink, WebKit causes headaches for all.
Now that Google is going its own way and developing its rendering engine independently of the WebKit project, both sides of the split are starting the work of removing all the things they don't actually need.
This is already causing some tensions among WebKit users and Web developers, as it could lead to the removal of technology that they use or technology that is in the process of being standardized. This is leading some to question whether Apple is willing or able to fill in the gaps that Google has left.
Since Google first released Chrome in 2008, WebCore, the part of WebKit that does the actual CSS and HTML processing, has had to serve two masters. The major contributors to the project, and the contributors with the most widely used browsers, were Apple and Google.
While both used WebCore, the two companies did a lot of things very differently. They used different JavaScript engines (JavaScriptCore [JSC] for Apple, V8 for Google). They adopted different approaches to handling multiple processes and sandboxing.
They used different options when compiling the software, too, so their browsers actually had different HTML and CSS features.The WebCore codebase had to accommodate all this complexity. JavaScript, for example, couldn't be integrated too tightly with the code that handles the DOM (the standard API for manipulating HTML pages from JavaScript), because
there was an intermediary layer to ensure that JSC and V8 could be swapped in and out.Google said that the decision to fork was driven by engineering concerns and that forking would enable faster development by both sides. That work is already under way, and both teams are now preparing to rip all these unnecessary bits out.
Right now, it looks like Google has it easier. So far, only Google and Opera are planning to use Blink, and Opera intends to track Chromium (the open source project that contains the bulk of Chrome's code) and Blink anyway, so it won't diverge too substantially from either. This means that Google has a fairly free hand to turn features that were optional in WebCore into ones that are permanent in Blink if Chrome uses them, or eliminate them entirely if it doesn't.
Apple's position is much trickier, because many other projects use WebKit, and no one person knows which features are demanded by which projects.
Apple also wants to remove the JavaScript layers and just bake in the use of JSC, but some WebKit-derived projects may depend on them.Samsung, for example, is using WebKit with V8. But with Google's fork decision,
there's now nobody maintaining the code that glues V8 to WebCore. The route that Apple wants to take is to purge this stuff and leave it up to third-party projects to maintain their variants themselves. This task is likely to become harder as Cupertino increases the integration between JSC and WebCore.
Oracle is working on a similar project: a version of WebKit with its own JavaScript engine, "Nashorn," that's based on the Java virtual machine. This takes advantage of the current JavaScript abstractions, so it's likely to be made more complicated as Apple removes them.
http://arstechnica.com/information-technology/2013/04/does-webkit-face-a-troubled-future-now-that-google-is-gone/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+arstechnica%2Findex+%28Ars+Technica+-+All+content%29