24 Punkte von xguru 2025-02-03 | 15 Kommentare | Auf WhatsApp teilen
  • Autor Felix Rieseberg ist seit mehr als 10 Jahren an der Entwicklung von Electron beteiligt und Co-Maintainer
  • Electron ermöglicht es, UIs mit Web-Technologien umzusetzen und bei Bedarf frei nativen Code beizumischen
  • Viele Apps (Visual Studio Code, Slack, Discord, Figma, ChatGPT, Claude, Notion, 1Password, Docker Desktop usw.) setzen auf Electron
  • Dieser Artikel greift die wichtigsten Missverständnisse über Electron auf und erklärt, warum diese Entscheidungen getroffen wurden

Electron stellt JavaScript und nativen Code gegeneinander

  • Häufig hört man: „Electron verwendet nur JavaScript und ist deshalb nativen Anwendungen unterlegen“
  • Tatsächlich kann Electron neben JavaScript auch nativen Code wie C++, Objective-C oder Rust gemeinsam verwenden
  • 1Password schreibt zum Beispiel den Großteil seines Codes in Rust und nutzt Electron für die UI
  • Die Stärke von Electron liegt in der Flexibilität, genau so viel nativen Code wie nötig zu mischen und für den UI-Bereich Web-Technologien zu nutzen
  • Es gibt auch Demo-Beispiele, die mit SwiftUI, GTK, Win32 usw. teilweise native UIs bereitstellen

Web-Apps sind schlecht

  • Es gibt die Ansicht, dass „alle nativen Apps immer überlegen sind“, aber der Markt ist nicht so einfach
  • Auch NASAs Mission Control, Bloomberg Terminal, McDonald’s-Kioske und SpaceX Dragon 2 nutzen Chromium-basierte Web-Technologien
  • Web-Technologien werden weltweit am breitesten eingesetzt, und gut umgesetzte Web-Apps können eine hervorragende User Experience bieten
  • Die Behauptung, „Web-Apps werden von Leuten gebaut, denen die Fähigkeiten fehlen“, ist eine Vereinfachung, die die Anforderungen der Einsatzumgebung und die Entscheidungssituation von Entwicklern außer Acht lässt

Das WebView des Betriebssystems ist performanter

  • Manche behaupten, das in macOS, Windows oder Linux integrierte WebView sei oft die bessere Wahl
  • Tatsächlich nutzte Slack anfangs MacGap (auf WebView-Basis), wechselte wegen Performance-Problemen aber schließlich zu Electron (Chromium)
  • Die moderne Chromium-Engine benötigt zwar viele Ressourcen, ist aber zugleich einer der Bereiche, die am aktivsten optimiert werden
  • Das ins Betriebssystem integrierte WebView kann durch gemeinsam genutzte Ressourcen zwar einen geringeren Speicherverbrauch zeigen, wird in der Praxis aus Sicherheits- und Stabilitätsgründen aber häufig isoliert
  • Mit Electron lässt sich die aktuelle Engine-Version direkt verwalten, wodurch sich Stabilität und Sicherheit unabhängig aufrechterhalten lassen

Die Bundle-Größe ist wichtig

  • Electron-Apps liegen üblicherweise bei 100 bis 300 MB, was oft kritisiert wird
  • Nutzer gewichten jedoch meist andere Faktoren wie Funktionen, Komfort und Stabilität höher als die App-Größe
  • Ein 4K-Netflix-Stream verbraucht zum Beispiel mehrere GB pro Stunde, und Updates für Call of Duty können mehrere hundert GB groß sein
  • Im Verhältnis zur tatsächlichen Nutzerzufriedenheit ist die Größe einer App deshalb oft ein vergleichsweise weniger wichtiger Faktor

Schlagt Electron

  • Electron entstand aus den Open-Source-Bemühungen von Menschen mit dem Ziel, „eine gute Desktop-App zu bauen“
  • Electron startete in einem Umfeld mit wenig Konkurrenz und hat bis heute ausreichend Funktionen und Stabilität geboten
  • Wer Electron „schlagen“ will, muss eine Plattform bauen, die das, was Electron tut, besser kann
  • Die Maintainer von Electron würden eine bessere Alternative gern willkommen heißen, falls sie auftaucht

15 Kommentare

 
joone 2025-05-24

Der Vergleich mit Call of Duty wirkt irgendwie am Thema vorbei.
Man sollte sich Teams ansehen, das Electron aufgegeben hat und auf WebView umgestiegen ist,
https://techcommunity.microsoft.com/discussions/microsoftteams/…

 
pmc7777 2025-02-04

Ich hoffe, dass Tauri schnell reif wird. Ich nutze es allerdings schon sehr gut.

 
coma333 2025-02-04

Es fühlt sich an, als wäre die Zeit von Atom Shell erst gestern gewesen … hat sich wirklich stark weiterentwickelt.

 
tsboard 2025-02-04

Es gibt zwar mehrere Kritikpunkte, aber wenn man sich den Reifegrad der VSCode-App ansieht, die wir täglich nutzen, wird doch ziemlich klar, dass Electron daran einen nicht kleinen Anteil hat.

 
akintos 2025-02-03

Ich habe fast 10 Electron-Apps auf meinem PC installiert; da fragt man sich schon, ob das nicht ein Framework sein sollte, das separat installiert wird.

 
freedomzero 2025-02-03

Schon die Bundle-Größe ist so eine Sache, und wenn man sieht, wie die ~~ Helper-Prozesse den Speicher auffressen, kann man nur seufzen.

 
nullvana 2025-02-03

Ich ziehe Tauri zwar als Alternative in Betracht, mache mir aber Sorgen, ob es bei der Auslieferung nicht spezielle Fälle geben könnte, in denen es nicht korrekt funktioniert. (Ich musste früher einmal ein Programm für eine Win32-Umgebung ausliefern, das auf standardmäßig registrierte DLLs wie msxml.dll verwiesen hat, und habe dabei wirklich gelitten; am Ende habe ich alles gebündelt ausgeliefert ... daher frage ich mich, ob nicht ein ähnliches Problem auftreten könnte.)

Wie auf der Electron-Seite gesagt wird, ist es wohl richtig, die Größe einfach zu vergessen, aber die Bundle-Größe ist einfach zu groß.

 
aaaapple123 2025-02-05

Bei Tauri scheint genau das das Problem zu sein..

Da sich die WebView je nach Plattform und auch die eingebetteten Programme unterscheiden, ist das letztlich das größte Problem. Man weiß nach dem Deployment einfach nicht, was passieren wird.

Wenn man in Tauri wiederum die WebView selbst mit einbinden will, wird die Bundle-Größe größer als bei Electron..

Deshalb denke ich, dass Tauri für die Entwicklung produktiver plattformübergreifender Apps noch nicht ausgereift ist.

 
secret3056 2025-02-03

Die McDonald’s-Kioske sind ... hm ... vielleicht kein gutes Beispiel.

 
tsboard 2025-02-04

Denselben Gedanken hatte ich auch plötzlich. Sind die Kioske bei McDonald's im Ausland vielleicht doch etwas anders? Das habe ich mich für einen Moment gefragt, haha.

 
dicebattle 2025-02-03

Hahahaha, ich hatte genau denselben Gedanken.

 
savvykang 2025-02-03

Es ist schade, dass die Reduzierung des Speicherverbrauchs wohl die größte Herausforderung wäre, aber keiner der Beteiligten offenbar einen ausreichenden Anreiz hat, das tatsächlich anzugehen.

 
rtyu1120 2025-02-03

Es gibt auch Demo-Beispiele, die mit SwiftUI, GTK, Win32 usw. teilweise eine native UI bereitstellen.

Im Text war ein Link zum tatsächlichen Demo-Code enthalten, also habe ich ihn mir angesehen. Es wirkt nicht so einfach, dass man es ganz simpel zusammen verwenden könnte. Man sollte der Sache wohl eher die Bedeutung beimessen, dass es grundsätzlich möglich ist ...

 
lamanus 2025-02-03

Offenbar stimmt es im Großen und Ganzen wohl, dass die Apps groß sind..

 
dohyun682 2025-02-03

Stimmt, die Bundle-Größe geben sie bereitwillig zu.