Gespräch mit Mozillas Chefentwickler Brendan Eich

Seite 2: Browser

Inhaltsverzeichnis

heise Developer: Zuletzt lieferten sich die Browserhersteller ein hartes Rennen um die JavaScript-Performance. Jetzt haben alle kompilierende Engines – ist das Problem Geschwindigkeit gelöst?

Eich: Auf der Website arewefastyet.com messen wir das laufend. Ich glaube nicht, dass wir demnächst den Sieg erklären werden. Das Performance-Rennen geht weiter, und die Sieger werden wechseln, wie beim Sport.

Wir werden bessere Benchmarks haben. Einige sind fürchterlich: Sie repräsentieren nicht die Wirklichkeit im Web, sondern sind aus einer anderen Sprache portiert. Wir arbeiten hierbei mit Microsoft Research zusammen. Und wir haben die Benchmark-Suite Kraken, die zum Beispiel Bildverarbeitung und Canvas-Grafiken testet, wo die JavaScript-Performance noch verbesserbar ist.

Ich glaube, das setzt sich auch gegen die Idee durch, man bräuchte nativen Code im Web. Dafür sind ein sehr komplizierter Compiler und eine virtuelle Maschine mit Sandbox nötig. Google und Microsoft Research experimentieren mit so etwas. Ich glaube nicht, dass sich das durchsetzt, selbst wenn sich alle einig wären – was sie nicht sind. Wir glauben nicht an die Closed-Box-Herangehensweise. Im Web kann man die Quellen sehen. Hier hat man keine komplizierten IDEs, sondern man lernt durch das Herumspielen an Quellcode.

Um wirklich schnell zu werden, braucht man Tracing, Just-in-Time-Kompilierung, statische Analyse, Kompilierung im Hintergrund; wir sehen uns das alles für TraceMonkey [die aktuelle JavaScript-Engine in Firefox; Red.] an. JavaScript kann dann fast so schnell werden wie nativer Code.

heise Developer: Gibt es überhaupt noch Spielraum für Performance-Gewinne?

Eich: Ja, aber sie werden nicht so dramatisch ausfallen. Denken Sie an Java, das anfangs ziemlich langsam war. Dann gab es einen Schub mit der Hotspot-Optimierung. Seither verbessert es sich weiter, mal um ein Prozent, mal um drei – so wird das ebenfalls in JavaScript sein. Mit statischer Analyse kann man zum Beispiel Variablen erkennen, auch wenn sie nicht deklariert wurden. Dadurch kann man aggressiver optimieren. Alle Engines machen das so, daran zerbricht man sich auch in Mountain View und in Redmond den Kopf.

heise Developer: Vor ein paar Jahren war Mozilla der Herausforderer, aber inzwischen wird Firefox selbst gejagt. Wie fühlt sich das an?

Eich: Das ist schwere Arbeit und ist nicht immer spaßig, aber ich glaube, es muss so sein. Mozillas Mission ist nicht nur Geschwindigkeit. Chrome ist der kleine, schnelle Browser, und auch wir werden schlanker und schneller, aber wir werden Chrome nicht nachmachen. Firefox hat mächtigere Erweiterungen und eine fortgeschrittenere Oberfläche.

Wir befassen uns zum Beispiel mit Identitätsmanagement – eine API wie Facebook Connect sollte da nicht die einzige Wahl sein. Wir denken über Neuerungen nach, die dem Benutzer die Wahl geben, welche Dienste er nutzt, und nicht nur einen, der seinen sozialen Graphen übernimmt. Als Benutzer möchte ich nicht alle meine Daten verlieren, wenn Chrome nicht mehr funktioniert oder wenn Facebook hinter meinem Rücken die Regeln ändert.

Firefox ist ein Benutzeragent, nicht nur ein Windows-Frame. Chrome ist beinahe unsichtbar, was nützlich für Webanwendungen ist. Aber bevor man irgendeiner Website vertraut, muss man dem Browser vertrauen – dass er Daten sichert, dass er den Datenschutz respektiert und so weiter. Deshalb glauben wir, dass der Browser nicht unsichtbar sein sollte.

heise Developer: Bereitet es Ihnen Sorgen, dass Mozilla auf dem mobilen Markt immer noch so unbedeutend ist?

Eich: Wir konzentrieren uns derzeit auf Firefox Mobile für Android. Google hat Android sehr offen gestaltet, sodass die Benutzer den Browser wählen können. Auf dem iPhone geht das nicht. Wir haben es mit Windows Mobile versucht, aber sie haben die Regeln geändert, sie verlangen jetzt .NET. Aber Firefox ist in nativem Code geschrieben – und wir werden nicht auf C# umsteigen (lacht).

Das Interview führte c't-Redakteur Herbert Braun, der bei der Zeitschrift die Themen Webstandards, Webentwicklung und Browser betreut. (ane)