Mozilla und Samsung arbeiten gemeinsam an neuer Browser-Engine Servo
Mozilla hat heute in seinem Blog eine überraschende Partnerschaft mit Samsung angekündigt. Innerhalb des nächsten Jahres will man eine neue Browser-Engine namens Servo auf den Markt bringen, die als erstes für ARM und Android portiert werden soll. Besonderes Augenmerk legt man bei der Entwicklung auf die effektive Unterstützung von Mehrkernprozessoren, wie sie Samsung bereits seit längerem in ihren mobilen Geräten verbaut.
Beide Seiten erhoffen sich durch den Deal natürlich gewisse Vorteile. Mozilla möchte nach Möglichkeit einen starken Gegenspieler zur WebKit haben, schließlich droht hier eine starke Dominanz und Einseitigkeit, wenn Chrome, Safari und bald auch Opera die Engine einsetzen. Samsung hingegen will seine Software besser auf die ausgelieferte Hardware anpassen, um hier Wettbewerbsvorteile zu erlangen.
So wird immer gerne spekuliert, dass sich Samsung immer mehr von der Google-Abhängigkeit lösen möchte, dabei ist ein effizienter und schneller mobiler Browser in jedem Fall eine wichtige Komponente. Die Engine wird in der noch recht jungen Programmiersprache Rust umgesetzt, die komplett auf Parallelisierung und optimale Ausnutzung der Hardware-Ressorcen ausgelegt ist, um auch später die immer stärker werdenden Prozessoren optimal auszureizen. Allerdings befindet man sich noch in einem frühen Entwicklungsstand, interessierte Entwickler können jedoch auf Github die weitere Entwicklung verfolgen.
Keine genaueren Auskünfte gab man zur Zukunft der bisherigen zentralen Browser-Engine Gecko für Firefox. Derzeit ist allerdings nicht vorstellbar, dass diese tatsächlich in nächster Zeit von Servo abgelöst wird. Vielmehr dürfte Servo für die neuen schnellen Geräte später zum Einsatz kommen. Es wird in jedem Fall spannend zu beobachten sein, wie sich die Partnerschaft von Mozilla und Samsung auf die derzeitige WebKit-Dominanz auswirken wird.
Na da bin ich ja mal gespannt. Ich hab nicht allzuviel Ahnung von Browser-Engines, aber soweit ich das mitbekommen habe, ist Layouting heute ja ein alter Hut und eigentlich hängt alles nur an JavaScript.
Wo man sich nun hier Vorteile verspricht mit Rust, kann ich nicht ganz erkennen. JavaScript Parallelisierung wird jetzt schon seit geraumer Zeit beackert (vor allem von Node.js aus), aber bislang ist mir keine gute Lösung bekannt.
node.js verarbeitet javascript code in ein loop, auf einer cpu, auf einem kern. node.js erlaubt event basierte programmierung. das hat nichts mit parallel zu tun. es gibt zwar threads die node.js aufrufen kann, diese beziehen sich aber alle nur auf i/o. also auf daten von hdd oder netzwerk lesen/schreiben.
browser können gar nicht schnell genug sein. da müssen immer mehr aufgaben gleichzeitig erledigt werden. allein schon die möglichkeiten die durch die neue funktionen in html5 zur verfügung gestellt werden müssen. layouten ist noch immer kein einfaches unterfangen. sonst könnten alle hersteller html auf die selbe art und weise anzeigen. tun sie aber bis heute nicht. und wenn dann noch web entwickler aus faulheit oder unwissenheit informationen weglassen oder anweisungen in ungünstigen reihenfolgen erstellen, dann ist der browser permanent damit beschäftigt das layout anzupassen. dom manipulation im rendering prozess sind die teuerersten aufgaben die man einem browser aufdrücken kann. wie schwer sich damit browser tun sieht man bei flash. hier wird der rendering prozess von flash inhalten bei allen browsern nur im dom render prozess erledigt. das kosten gerade im mobil bereich so viel leistung dass apple flash auf seine ios geräte verbannt hat und auch google bei android seit letztes jahr hier nachgezogen hat.
browser sind heute fast so schwergewichtig wie vollständige betriebssysteme und gerade deswegen machen projekte wie servo richtig sinn.
Manchmal ist das Timing in der Technologiewelt faszinierend. Mozilla und Google, die die zwei Browser mit der größten Verbreitung powern, kündigen fast auf die Stunde zugleich neue Browser-Engines an …
@sam: genau das war doch mein Punkt. JavaScript wird auch bei Node.js (abgesehen vom cluster Modul) nicht parallelisiert. Von den HTML5 Funktionen sehe ich auch keine, die Parallelität braucht.
Das Einzige wäre dort WebGL was mir in den Sinn kommt.
Alles was Du nennst mit DOM-Rendering etc. ist im Endeffekt alles JS und hier sind wir wieder beim Parallelisierungsproblem von JS. Mir ist zumindest keine Seite bekannt die ohne JavaScript moderne Browser auch nur annähernd zum Schwitzen bringt.
Und Flash ist sowieso tot. Und dass Flash im DOM-Rendering-Prozess gemacht wird ist absoluter Schwachsinn. Google hat da sogar ne ganze Sandbox für gebaut.
Das hier und die Git-Diskussion letztens lassen mich wundern, woher Du eigentlich Dein technisches Wissen hast.
Die scheinen es ja echt ernst mit der Zusammenarbeit zu meinen. ZDnet schreibt, dass Samsung rund 20 Mitarbeiter für die Entwicklung an Rust abgestellt hat, nicht sooo wenig wie ich finde.
Was man innerhalb des nächsten Jahres haben möchte, ist übrigens eine stabile Version von Rust und noch nicht von Servo, das wird wohl noch ein bisschen länger dauern. 😉