Original-URL des Artikels: http://www.golem.de/news/browser-warum-webkit-kein-allheilmittel-ist-1302-97618.html    Veröffentlicht: 18.02.2013 12:06

Browser

Warum Webkit kein Allheilmittel ist

Nach Apple, Google und Amazon setzt künftig auch Opera auf die freie Browser-Engine Webkit. Rivalen, die sich in anderen Bereichen regelrecht bekriegen, arbeiten friedlich zusammen, und es scheint nur eine Frage der Zeit, bis Microsoft und Mozilla folgen. Doch der Schein trügt.

Eine Welt, in der alle Browser Webseiten gleich darstellen, einheitliche APIs auf Basis von Webstandards nutzen und diese frühzeitig umsetzen: Diese Vorstellung klingt verlockend, und die freie Browser-Engine Webkit wirkt wie der entscheidende Baustein, um es möglich zu machen.

Das von Apple auf Basis von KHTML, der HTML-Rendering-Engine von KDE, gestartete Projekt findet immer mehr Anhänger. So setzte Apples Rivale Google beim Android-Browser auf Webkit und entwickelte später Chrome auf Basis der Engine. Auch Amazons Browser basiert auf Webkit und nun stellt Opera seine eigene Browser-Engine Presto ein und beteiligt sich künftig an Webkit. Zahlreiche weitere Browser verwenden sie.

Webkit ist nicht gleich Webkit

Doch Webkit ist nicht gleich Webkit. Das wird schon bei den Browsern von Apple und Google deutlich. Beide basieren offiziell auf Webkit, unterscheiden sich aber fundamental. So hat Google für seinen Browser mit V8 eine eigene Javascript-Engine entwickelt und sich gegen die von Apple entwickelte Nitro-Engine des Webkit-Projekts entschieden. Zudem hat Google für Webkit im Geheimen ein Multi-Prozess-Modell entwickelt, auf dem Chrome von Beginn an basierte, Apple arbeitet an der Alternative Webkit2.

Das sind längst nicht alle Unterschiede zwischen Safari und Chrome, auch beim Funktionsumfang gibt es sie. Jeder Browserhersteller, der Webkit nutzt, kann entscheiden, welche Funktionen er unterstützen und welche er selbst auf andere Weise umsetzen will. Während Chrome beispielsweise das Gamepad-API unterstützt, verzichtet Apple darauf. Bei Desktopbenachrichtigungen, für die noch keine fertige Spezifikation vorliegt, setzen Apple und Google auf unterschiedliche APIs, wobei Apple dem aktuellen W3C-Entwurf folgt. Und währende Chrome WebGL schon lange unterstützt, steht die 3D-Technik in Safari noch immer nicht regulär zur Verfügung.

Der Webentwickler Peter-Paul Koch hat vor rund zwei Jahren eine Liste angelegt, die die Unterschiede verschiedener Webkit-Browser aufzeigt. Dabei wird deutlich: Dass mehrere Browser auf Webkit setzen, entbindet Entwickler nicht davon, ihre Webseiten und Apps in mehreren Browsern zu testen.

Zusammenarbeit?

Eric Seidel, der seit rund acht Jahren an Webkit arbeitet - früher für Apple, heute für Google -, machte kürzlich in einer E-Mail auf die aus seiner Sicht größten Probleme des Webkit-Projekts aufmerksam: Es verfügt derzeit über acht unterschiedliche Build-Systeme, die alle gepflegt werden müssen, es fehlt an Vertrauen und Zusammenarbeit zwischen den Entwicklern, es ist schwierig, längere Zeit an neuen Funktionen zu arbeiten, und es gibt einige plattformspezifische Altlasten in den Kernkomponenten, die dort gar nicht hingehören. Zudem fehlt ein klarer Entscheidungsprozess bei der Aufnahme neuer Funktionen.

Der jQuery-Entwickler Dave Methvin weist noch auf ein anderes Problem des Webkit-Projekts hin: Es hat viele Fehler und Inkonsistenzen, die zum Teil seit Jahren bekannt sind. So enthält jQuery Core mehr Codezeilen, die dafür da sind, Probleme mit Webkit zu lösen, als Code zur Problembehebung in irgendeinem anderen Browser. Entwickler fänden es einfach attraktiver, neue Funktionen für Webkit zu entwickeln und dafür Applaus zu ernten, als Fehler aus allen Webkit-Browsern zu entfernen.

Dennoch hat sich nun Opera für einen Wechsel auf Webkit entschieden und bekommt dafür Zuspruch. So schreibt der ehemalige Mozilla-Chef John Lilly beispielsweise, er finde Operas Entscheidung nachvollziehbar. Und Mozillas Technikchef Brendan Eich ist der Meinung, Mozilla hätte in Operas Situation ähnlich entschieden.

Mozilla erteilt Webkit eine Absage

Das bedeute aber nicht, dass auch Mozilla darüber nachdenkt, seine eigene Rendering-Engine Gecko zugunsten von Webkit aufzugeben, macht Eich deutlich. Denn Mozilla unterscheide sich grundlegend von allen anderen Browserherstellern. Zum einen sei eine Browser-Monokultur auf Basis von Webkit nicht mit Mozillas Zielen, für ein offenes Web zu sorgen, vereinbar. Zum anderen stecke Mozilla in einer ganz anderen Situation als Opera.

Opera hat auf dem Desktop einen recht kleinen Marktanteil und ist vor allem auf mobilen Geräten weit verbreitet. Allerdings wird Opera in Form von Opera Mini vorzugsweise auf einfachen Feature-Phones genutzt, auf Smartphones dominieren andere Browser. Und aufgrund von Apples Restriktionen ist es Opera auch nicht möglich, einen einheitlichen Browser für die zwei größten Smartphone- und Tablet-Betriebssysteme anzubieten, es sei denn, Opera wechselt auf Webkit.

Eich schätzt die Wechselkosten für Opera im Vergleich zu Mozilla recht gering ein. Das liegt vor allem daran, dass ein entscheidendes Merkmal von Mozillas Browser Firefox die große Zahl an Erweiterungen ist, die für den Browser existiert. Und diese Addons, wie auch große Teile des Browsers selbst, sind in XUL geschrieben und werden von Gecko gerendert. Würde Mozilla auf Webkit umsteigen, fielen also all die Erweiterungen weg. Firefox wäre nicht mehr Firefox.

Ein Wechsel würde für Mozilla also vermutlich einige Jahre Stillstand bedeuten, sagt Eich. In der Zeit müsste Mozilla im Geheimen an der Portierung arbeiten. Aber Arbeit im Geheimen passt ebenfalls gar nicht zu Mozilla, laufen bei Mozilla doch alle Entwicklungen offen ab.

Mozilla arbeitet an einer neuen Browser-Engine

Nach Ansicht von Eich liegt die Zukunft ohnehin weder bei Webkit noch bei Gecko. Alle, die heute an Browsern arbeiten, müssten ihre Engines früher oder später an eine neue Generation von Multicore-Systemen aus CPUs und GPUs anpassen, sagt Eich. Er rät daher dazu, schon heute in dieser Richtung zu forschen.

Mozilla arbeitet bereits seit längerem an einer von Grund auf neuen Browser-Engine namens Servo. Diese soll Multi- und Many-Core-Prozessoren sowie GPUs effizient nutzen können. Dazu ist es nach Ansicht von Eich notwendig, sowohl mehrere Threads als auch SIMD (Single instruction, multiple data) in allen Bereichen der Engine zu nutzen.

Geschrieben wird Servo in der ursprünglich von Graydon Hoare entwickelten Programmiersprache Rust, die Mozilla seit einigen Jahren unterstützt.

Browser müssen sich unterscheiden

Auch aus strategischer Sicht schließt Eich einen Wechsel auf Webkit aus. Wenn alle Browser die gleiche Engine nutzten und somit sehr ähnliche Funktionen böten, fände der Wettbewerb zwischen den Browsern primär über deren Verteilung statt. Und hier hätten Unternehmen wie Apple, Google oder Amazon, die ihrerseits Geräte verkaufen, klare Vorteile. Für Mozilla sei es daher der bessere Weg, konsequent auf Web-APIs zu setzen, die manch anderer Browserhersteller eher zurückhält, um Entwickler dazu zu bringen, native Apps für ihre eigene Plattform zu entwickeln. Zwar arbeitet auch Mozilla mit Firefox OS an einem Smartphone-Betriebssystem, das aber verzichtet komplett auf native APIs und stellt alle Systemfunktionen über Web-APIs bereit, deren Entwicklung Mozilla im Rahmen des W3C vorantreibt.

Microsoft hat sich aktuell nicht wie Opera zum Wechsel zu Webkit entschlossen. Es ist auch nicht davon auszugehen, dass Microsoft einen Wechsel auf Webkit erwägt. Schließlich hat Microsoft erst vor wenigen Jahren wieder ernsthaft begonnen, an seinem Browser zu arbeiten und seitdem seine Browser-Engine Trident erheblich verbessert. Dabei hat es sogar in Kauf genommen, dass neue Versionen der Engine nicht mehr kompatibel mit älteren Versionen des Internet Explorers sind, wo diese sich nicht mit Webstandards vertragen.

Und eines darf man nicht vergessen: Das W3C besteht darauf, dass für einen Webstandard mindestens zwei unabhängige Implementierungen vorliegen müssen. Je weniger Browser-Engines es gibt, desto schwieriger wird es, neue Standards zu etablieren. Das kommt derzeit Webkit und Gecko zugute, die gemeinsam neue Standards vorantreiben können, auch gegen den Willen einzelner Unternehmen.  (ji)


Verwandte Artikel:
Browser: Opera steigt auf Webkit und V8 um   
(13.02.2013 10:43, http://www.golem.de/news/browser-opera-steigt-auf-webkit-und-v8-um-1302-97559.html)
Videokompression: Opera kauft Skyfire für 155 Millionen US-Dollar   
(15.02.2013 09:30, http://www.golem.de/news/videokompression-opera-kauft-skyfire-fuer-155-millionen-us-dollar-1302-97608.html)
WebRTC: Chrome und Firefox verstehen sich   
(05.02.2013 08:48, http://www.golem.de/news/webrtc-chrome-und-firefox-verstehen-sich-1302-97368.html)
Javascript: Vom Kinderkram zur universellen Scriptsprache   
(13.10.2011 10:23, http://www.golem.de/1110/86952.html)
Chrome 25 Beta: Browser hört aufs Wort   
(15.01.2013 11:51, http://www.golem.de/news/chrome-25-beta-browser-hoert-aufs-wort-1301-96915.html)

© 2014 by Golem.de