Haben Sie bemerkt, dass viele neue Desktop-Anwendungen Websites ähneln? Es ist nicht deine Vorstellung.
Von Trello bis Slack, von WordPress.com bis Github wird es für sogenannte Desktop-Anwendungen immer häufiger, eine Website mit einigen nativen Funktionen wie Benachrichtigungen, Dateisystemzugriff und Menüs zu bündeln. Die gebräuchlichste Technologie, die dies ermöglicht, heißt Elektron und es wird von einigen Anwendungen verwendet, die Sie vielleicht gar nicht vermuten Chat-Anwendung Discord and Microsoft’s Visual Studio-Code .
Electron macht es Entwicklern leicht, eine App gleichzeitig unter Windows, MacOS und Linux zu veröffentlichen, aber es gibt Nachteile für Benutzer. Zum einen sind Elektronenanwendungen riesig. Slack, eine Chat-Anwendung, belegt 237 MB Festplattenspeicher auf meinem Mac, und der Speicherverbrauch ist ebenfalls nicht niedrig. Was beansprucht all diese Ressourcen? Und warum verwenden Entwickler etwas so Ineffizientes?
Elektronen-Apps sind ziemlich einfach zu erstellen
Desktop-Anwendungen sind schwer zu erstellen, insbesondere wenn Sie möchten, dass sie plattformübergreifend sind. Der Zugriff auf das Dateisystem funktioniert unter Windows anders als beispielsweise unter Linux, und Benachrichtigungen funktionieren unter macOS anders als unter Windows. Dies bedeutet, dass jeder, der eine Anwendung für alle drei Desktop-Betriebssysteme (oder sogar zwei von ihnen) schreiben möchte, einen Großteil seines Codes beim Portieren von einem zum anderen neu schreiben muss.
Electron "löst" dies, indem es eine einzige Plattform anbietet, die auf allen drei wichtigen Desktop-Betriebssystemen funktioniert. Dies bedeutet, dass Entwickler den Code für Dinge wie Benachrichtigungen einmal schreiben können und erwarten können, dass er auf jedem Betriebssystem nativ funktioniert. Noch besser für Entwickler: Alles kann mit Javascript, HTML und CSS erstellt werden - Technologien, mit denen jeder vertraut ist, der für das Web codiert.
Elektronen-Apps werden mit ziemlich viel Chrom geliefert
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 Entwickler auf allen Systemen erwarten. Aus diesem Grund nimmt die Desktop-Version von Slack über 200 MB Festplattenspeicher ein: Der größte Teil von Chrome ist dort gebündelt.
Jede von Ihnen ausgeführte Electron-App ist mehr oder weniger eine vollständige Instanz von Chrome. Als Blogger Joseph Gentle wies darauf hin , das ist kaum ideal:
Sie können sich Slack als ein kleines Javascript-Programm vorstellen, das in einer anderen Betriebssystem-VM (Chrome) ausgeführt wird und das Sie ausführen müssen, um im Wesentlichen im 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.
Also ja, es gibt Nachteile für 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 dieses Codes aus. Hier gibt es keine gemeinsame Nutzung von Ressourcen wie bei nativen Anwendungen. Dies bedeutet, dass Electron-Apps mehr Festplattenspeicher und Arbeitsspeicher beanspruchen als eine Anwendung, die speziell für Ihre Plattform entwickelt wurde. Wenn Ihnen die Leistung wirklich am Herzen liegt, sollten Sie Electron-Anwendungen vermeiden.
Warten Sie, ist Electron also 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 überwiegende Mehrheit noch nie von Electron gehört. Die meisten meiner Mitarbeiter hatten es nicht und alle verwenden Slack jeden Tag. Viele waren begeistert, eine Desktop-Version von Trello herauszubringen, und hatten erneut keine Ahnung, dass es sich um eine Electron-App handelte.
Und diese Apps lassen sich wirklich besser in Ihr Betriebssystem integrieren als Websites. Sie leben in ihrem eigenen Fenster. Sie bieten großartige Tastaturkürzel, native Benachrichtigungen und andere Dinge, die Sie mit nur einem Browser nicht auf die gleiche Weise tun können.
Und es ist eine gute Wette, dass Anwendungen wie Slack, Trello und WordPress.com sich nicht die Mühe machen würden, eine Desktop-Version anzubieten, wenn Electron nicht vorhanden wäre, sondern sich stattdessen auf Mobil- und Browserversionen konzentrieren würden. Die Frage ist also nicht, ob Electron schlecht ist. Es geht darum, ob Elektronenanwendungen besser sind als nichts. Ich bin bereit, Ja zu sagen, aber vernünftige Leute können anderer Meinung sein. (Und hey, für diese Leute gibt es immer die Webversion.)