Das Electron (oft ElectronJS) ist ein Framework für plattformübergreifende Desktop-Anwendungen auf Basis von Web-Technologien. Mit HTML, CSS und JavaScript entstehen Programme, die auf Windows, macOS und Linux als native Desktop-Anwendungen laufen — inklusive Menüs, Tray, Datei-Zugriff und Auto-Updates.
Electron entstand bei GitHub als Grundlage des Editors Atom und ist heute hinter einer langen Liste prominenter Anwendungen zu finden: Visual Studio Code, Slack, Discord, Figma Desktop, WhatsApp Desktop, Notion und viele andere.
Architektur
Eine Electron-Anwendung besteht aus zwei Welten:
- Main-Prozess — eine Node.js-Laufzeit. Verantwortlich für Fenster, native Menüs, Datei-Zugriff, Auto-Updates und alles, was Betriebssystem-Zugriff braucht.
- Renderer-Prozesse — eine oder mehrere Chromium-Instanzen, in denen die UI als Webseite läuft.
Beide kommunizieren über IPC (Inter-Process Communication). Diese Trennung ist sicherheitsrelevant: der Renderer hat per Default keine Datei- oder Systemrechte; alles, was er ans Betriebssystem heranträgt, muss über klar definierte Brücken laufen.
Stärken und Trade-offs
Electron bringt klare Vor- und Nachteile mit:
- Vorteil — Wiederverwendung von Web-Know-how: Frontend-Entwickler bauen eine Desktop-App ohne Plattform-spezifisches Wissen.
- Vorteil — Plattformübergreifende Auslieferung: ein Codebase, drei Zielsysteme.
- Vorteil — Reichhaltige UI-Möglichkeiten: alles, was im Browser geht, geht in Electron.
- Nachteil — Größe und Speicherbedarf: jede Electron-Anwendung bringt einen vollständigen Chromium mit. Ein „Hello World" liegt schnell bei 100+ MB.
- Nachteil — Performance-Profil: nicht so leicht wie eine native App, vor allem in der Speichernutzung.
Alternativen
Im Sprachgebrauch tauchen Konkurrenten auf, die ähnliche Versprechen mit anderem Profil machen:
- Tauri — nutzt die System-WebView statt Chromium; deutlich kleinere Bundles, Backend in Rust.
- Neutralinojs — sehr schlanke Alternative ohne Chromium-Bundle.
- Native Frameworks wie SwiftUI, Qt, GTK, .NET MAUI — wenn echte native Performance entscheidend ist.
Electron bleibt die robuste, am weitesten erprobte Wahl, wenn ein bestehendes Web-Frontend möglichst direkt in eine Desktop-App überführt werden soll. Für neue Projekte mit Fokus auf schlanken Bundles ist Tauri zunehmend die interessantere Option.