Positron & SpiderNode: Electron mit Gecko und node.js mit SpiderMonkey geplant
Mozilla gibt dem Thema Embedding neue Priorität und plant ein Electron mit Gecko anstelle von Chromium als Plattform sowie ein node.js mit Mozillas SpiderMonkey-Engine. Die beiden Projekte laufen unter den Namen Positron respektive SpiderNode.
Browser-Engines sind heute längst nicht mehr nur Bestandteil von Browsern, das Embedding von Engines wird ein immer wichtigeres Thema. Das Framework Electron von GitHub ist derzeit in aller Munde, weil es die plattformübergreifende Erstellung von Desktop-Anwendungen mit Webtechnologien besonders einfach macht. Auch Mozilla nutzt Electron für das Tofino-Projekt.
Electron verwendet die Browser-Engine von Chromium sowie die JavaScript-Engine v8 von Google. Unter dem Namen Positron arbeitet Mozilla nun an einem Projekt, die Electron-API mit der Browser-Engine Gecko sowie der eigenen JavaScript-Engine SpiderMonkey zu kombinieren.
Ebenfalls unter Entwicklern beliebt ist die JavaScript-Runtime node.js, welche auf v8 von Google basiert. Das Projekt SpiderNode bringt SpiderMonkey in node.js.
Weitere aktuelle Artikel aus der Kategorie „Mozilla“
- 15.11.2024Quellcode von Pocket für Android als Open Source veröffentlicht
- 14.11.2024Quellcode von Mozilla Didthis als Open Source veröffentlicht
- 06.11.2024Mozilla Foundation entlässt 30 Prozent der Mitarbeiter
- 16.10.2024Didthis: Einstellung des Projekts, Code wird Open Source
- 21.09.2024Mozilla veröffentlicht Common Voice Corpus 19.0
Warum sollte das jemand anstatt Electron verwenden? Es gibt keine "Story" dahinter, keine großartigen Vorteile, weshalb Entwickler umschwenken würden.
Die Zeit, die hier reingesteckt wird, sollte lieber für eine Servo+Spidermonkey Lösung (https://github.com/servo/servo/issues/7379) verwendet werden. Hier gibt es gute Argumente, weshalb man das statt Chromium nutzen möchte. Siehe auch Diskussion hier: http://chrislord.net/index.php/2016/03/08/state-of-embedding-in-gecko/#comment-395071
Ich bin etwas verwundert über diesen Kommentar, weil es ja nun eigentlich vollkommen klar ist, dass es gut ist, Alternativen zu Chromium zu haben. Zumal man die Google-Engine wirklich nicht als perfekte Engine bezeichnen kann.
Servo + SpiderMonkey ist ein vollkommen anderes Thema und hat mit diesem hier überhaupt nichts zu tun. Servo ist noch viel zu weit von einer Fertigstellung entfernt, als dass es jetzt in Anwendungen eingebettet werden könnte. Und genau darum geht es aber. Gecko ist eine in dem Sinne "fertige" Engine, Servo erst in ein paar Jahren. Zumal dafür logischerweise vollkommen andere Leute zuständig sind, sprich da gehen null Ressourcen ab, die für Servo + SpiderMonkey fehlen.
Servo+SpiderMonkey würden sehr Viele als Electron-Ersatz verwenden, Gecko+SpiderMonkey so gut wie niemand.
Die Leute, die an Gecko+SpiderMonkey programmieren, könnten genauso gut an Servo+SpiderMonkey programmieren. JavaScript und SpiderMonkey ist bei beiden gleich, Integrationsarbeiten auch, wesentlicher Unterschied ist die HTML-Engine: Wer C++ kann (Gecko), kann auch Rust (Servo) lernen (innerhalb ca. 1 Monat).
Ich bin auch dafür, dass Mozilla-Technologien nach vorne kommen, aber der "Benefit" eines alternativen Electron muss groß sein, damit Entwickler umschwengen. Bei Servo ist er das (deutlich erhöhte Sicherheit + Performance gegenüber Chromium und Gecko)
Servo ist noch nicht so weit, richtig. Aber je mehr Ressourcen dort reinfließen, um so schneller wird es gelingen. Stattdessen werden die Ressourcen auf 2 Projekte gesplittet… Ich bin total für "Great or Dead" und deshalb bin ich für https://github.com/servo/servo/issues/7379 und habe meine Zweifel am Erfolg von Positron
Nochmal, was ich eh schon schrieb: 1. Servo ergibt erst in ein paar Jahren als Embedding-Lösung einen Sinn und nicht jetzt. Es geht hier nicht um Zukunftsmusik, sondern etwas in naher Zukunft Greifbares. 2. An Gecko und Servo arbeiten ganz andere Teams. Durch dieses Projekt gehen keine Servo-Ressourcen verloren. Würde niemand an Positron arbeiten, würde das Servo-Team auch nicht wachsen.
Ich kann auch deiner Argumentation nicht folgen, dass niemand Positron bräuchte, wenn es keinen großen Vorteil gegenüber Electron geben würde. Um nicht zu sagen: das Argument fehlt in dieser Behauptung komplett. Wieso muss ein Electron mit Gecko mehr können als ein Electron mit Chromium? Das ergibt für mich einfach keinen Sinn.
Vor allem hat ja niemand gesagt, dass bestehende Electron-Projekte auf Positron umgestellt werden sollen. Dazu besteht ja keine Notwendigkeit. Aber für neue Projekte ist es vollkommen ohne Frage positiv, wenn man Optionen hat. Vielfalt hat dem Markt noch nie geschadet. Und wie gesagt, Chromium ist genauso weit davon entfernt, eine perfekte Engine zu sein, wie Gecko. Alleine webstandardmäßig fallen mir Gründe ein, wieso ich als Entwickler Gecko vorziehe.
Ich sehe auch den Punkt nicht mit Ressourcen aufsplitten in zwei Projekte. Ich glaube, dass du keine Vorstellung davon hast, wie viele Projekte Mozilla am Laufen hat. Mozilla macht dermaßen viel, dass ein weiteres Projekt überhaupt nicht auffällt. Mozilla ist sehr, sehr viel mehr als nur der Entwickler einer Engine und eines Browsers.
"Great or Dead" hat hiermit nichts zu tun, dieses Schlagwort kommt aus der Firefox-Entwicklung und meint, dass bestehende Funktionen verbessert oder entfernt werden sollen, wenn sie den Qualitätsansprüchen nicht genügen. Hier geht es aber um nichts bereits Bestehendes, sondern um was Neues.
Hallo, Sören,
gleich einmal die Beobachtung der Repos aktiviert 🙂
Ich hab bisher noch nicht mit Electron gearbeitet, würde von daher meine ersten Gehversuche mit Positron unternehmen (allein, weil es von Mozilla ist :-D).
Kleiner Tipp: Wenn du statt auf https://github.com/mozilla/positron/commits/master auf https://github.com/mozilla/positron/ verweist, schickst du die Leser auf die "Landing Page" des Projekts (mit schön formatierter README) statt in die Historie der letzten Commits.
Gruß, André
Ich weiß, ich werd das jetzt auch ändern, das war zum Zeitpunkt der Artikelerstellung aber Absicht. Bei Positron, um konsistent mit SpiderNode zu sein, weil ich nicht auf unterschiedliche Seiten verlinken wollte. Und bei SpiderNode, weil die README-Datei noch nicht angepasst worden ist und durchgehend von ChakraCore gesprochen hatte. Das wäre zu verwirrend gewesen. 😉
Jepp 😉