Was sind Elektron-Apps und warum sind sie so verbreitet?
Haben Sie festgestellt, dass viele neue Desktop-Anwendungen Websites ähneln? Es ist nicht deine Vorstellung.
Von Trello bis Slack, von WordPress.com bis zu Github wird es immer häufiger, dass so genannte Desktop-Anwendungen eine Website mit ein paar nativen Funktionen wie Benachrichtigungen, Dateisystemzugriff und Menüs bündeln. Die gebräuchlichste Technologie, die dies ermöglicht, wird als Electron bezeichnet. Sie wird von einigen wenigen Anwendungen verwendet, von denen Sie vielleicht nicht einmal ausgehen, wie der Chat-Anwendung Discord und dem Visual Studio-Code von Microsoft.
Electron macht es Entwicklern leicht, eine App gleichzeitig unter Windows, Mac OS und Linux zu veröffentlichen, aber es gibt Nachteile für die Benutzer. Elektronenanwendungen sind zum einen enorm. Slack, eine Chat-Anwendung, beansprucht 237 MB Festplattenspeicher auf meinem Mac, und der Speicherverbrauch ist ebenfalls nicht niedrig. Was verbraucht all diese Ressourcen? Und warum verwenden Entwickler etwas so ineffizientes?
Electron Apps sind ziemlich einfach zu machen
Desktop-Anwendungen sind schwer zu erstellen, insbesondere wenn sie plattformübergreifend sein sollen. Der Zugriff auf das Dateisystem funktioniert beispielsweise in Windows anders als in Linux, und Benachrichtigungen funktionieren unter macOS anders als unter Windows. Dies bedeutet, dass jeder, der eine Anwendung für alle drei Desktop-Betriebssysteme (oder auch nur zwei) schreiben möchte, einen Großteil seines Codes neu schreiben muss, wenn er von einem auf ein anderes portiert.
Electron löst dieses Problem, indem es eine einzige Plattform bietet, die auf allen drei großen Desktop-Betriebssystemen funktioniert. Dies bedeutet, dass Entwickler den Code für Benachrichtigungen wie einmal schreiben können und davon ausgehen können, dass er auf jedem Betriebssystem nativ arbeitet. Für Entwickler noch besser: Alles kann mithilfe von Javascript-, HTML- und CSS-Technologien erstellt werden, mit denen jeder, der für das Web kodiert, sehr vertraut ist.
Electron Apps kommen mit ziemlich viel Chrom
Wie ist das möglich? Zum Teil, weil jede Electron-App einen vollständigen Webbrowser enthält: Chromium, die Open-Source-Version von Google Chrome. Dies wird zusammen mit den plattformspezifischen Anweisungen gebündelt, um sicherzustellen, dass sich alles genau so verhält, wie es die Entwickler auf allen Systemen erwarten. Aus diesem Grund benötigt die Desktop-Version von Slack mehr als 200 MB Festplattenspeicher: Der größte Teil von Chrome ist dort gebündelt.
Jede Electron-App, die Sie ausführen, ist mehr oder weniger eine vollständige Instanz von Chrome. Wie der Blogger Joseph Gentle feststellte, ist dies kaum ideal:
Sie können sich Slack als ein kleines Javascript-Programm vorstellen, das in einer anderen Betriebssystem-VM (Chrome) ausgeführt wird, das Sie ausführen müssen, um im Wesentlichen über IRC zu chatten. Selbst wenn Sie das echte Chrom geöffnet haben, führt jede Elektronen-App eine eigene, zusätzliche Kopie der gesamten VM aus.
Ja, es gibt Nachteile für die Benutzer. Zuallererst bündelt jede einzelne Electron-Anwendung, die Sie herunterladen, den größten Teil von Chromium, und jede Anwendung, die Sie ausführen, führt einen guten Teil des Codes aus. Es gibt hier keine gemeinsame Nutzung von Ressourcen wie bei nativen Anwendungen. Dies bedeutet, dass Electron-Apps mehr Festplattenspeicher und Speicherplatz beanspruchen werden als Anwendungen, die speziell für Ihre Plattform entwickelt wurden. Wenn Sie Wert auf Leistung legen, sollten Sie Electron-Anwendungen vermeiden.
Warten Sie, so ist Elektron gut oder schlecht?
Zu diesem Zeitpunkt sind Computer so leistungsfähig, dass die meisten Benutzer nicht einmal bemerken werden, wie ineffizient Electron-Anwendungen sind. Tatsächlich hat die große Mehrheit noch nie von Electron gehört. Die meisten meiner Kollegen hatten es nicht getan, und alle nutzen Slack jeden Tag. Viele waren aufgeregt, als eine Desktop-Version von Trello auf den Markt kam, und hatten wieder keine Ahnung, dass es sich um eine Electron-App handelte.
Und diese Apps lassen sich wirklich besser in Ihr Betriebssystem integrieren als Websites. Sie wohnen in einem eigenen Fenster. Sie bieten großartige Tastenkombinationen, systemeigene Benachrichtigungen und andere Dinge, die Sie mit einem Browser nicht auf die gleiche Weise machen können.
Und es ist eine gute Wette, dass Anwendungen wie Slack, Trello und WordPress.com keine Desktop-Version anbieten würden, wenn Electron nicht vorhanden wäre und sich stattdessen auf Mobile- und Browser-Versionen konzentriert. Die Frage ist nicht, ob Electron schlecht ist. Ob Elektron-Anwendungen besser sind als nichts. Ich bin bereit, ja zu sagen, aber vernünftige Menschen können dem nicht zustimmen. (Und hey, für diese Leute gibt es immer die Webversion.)