Zurück zu den Vergleichen
Plattformübergreifendes UI

Perry vs Electron

Electron erlaubt dir, plattformübergreifende Desktop-Apps mit Web-Technologien (HTML/CSS/JS) zu bauen, indem Chromium und Node.js mit deiner App gebündelt werden. Perry kompiliert TypeScript direkt zu nativem Maschinencode und rendert UI über echte Plattform-Widgets — AppKit, UIKit, GTK4, Win32, JNI. Electrons Versprechen ist Web-Tech-Wiederverwendung; Perrys Versprechen sind kleine native Binaries mit nativer UI aus TypeScript.

Was ist Electron?

Electron ist ein Open-Source-Framework zum Erstellen plattformübergreifender Desktop-Anwendungen, das Chromium für das Rendering und Node.js für Systemzugriff nutzt. Jede Electron-App liefert ihre eigene Kopie von Chromium und Node aus, weshalb Electron-App-Installer typischerweise 80–150 MB groß sind, selbst für ein Hello World. Electron treibt weit verbreitete Apps an, darunter VS Code, Slack, Discord und Figmas Desktop-Client. Es zielt auf Linux-, macOS- und Windows-Desktops; eine First-Party-Story für Mobile, Watch oder TV gibt es nicht.

Was ist Perry?

Perry kompiliert TypeScript direkt zu nativem Maschinencode ohne Browser-Engine, ohne Chromium und ohne Node-Runtime. Die UI-Schicht (perry/ui) ist ein deklaratives System im SwiftUI-Stil, das auf native Plattform-Widgets abbildet — AppKit auf macOS, UIKit auf iOS/iPadOS/tvOS, GTK4 auf Linux, Win32 auf Windows und JNI auf Android. Hello-World-Binaries sind ~330 KB; vollständige Apps mit Stdlib (Fastify, mysql2 etc.) liegen bei rund 48 MB.

Direktvergleich

FeaturePerryElectron
RenderingNative Plattform-Widgets (AppKit, UIKit, GTK4, Win32, JNI)Gebündeltes Chromium (HTML/CSS/JS)
Gebündelte EnginesKeine (optional V8 nur mit --enable-js-runtime)Chromium + Node.js
Hello-World-Installer-Größe~330 KB~80–150 MB
Vollständiger App-Installer (Stdlib + Frameworks)~48 MBTypischerweise 100–200+ MB
RAM-VerbrauchNativ (typisch: zweistellige MB)Mehrere Chromium-Prozesse (typisch: hunderte MB)
Mobile / Watch / TVJa — iOS, iPadOS, Android, watchOS, tvOS, Wear OSNein (nur Desktop)
UI-SpracheTypeScript mit deklarativer SwiftUI-Stil-APIHTML/CSS/JS (Web-Stack)
Auto-Update / Paketierungperry publish (Homebrew, APT, App Store, Play Store)electron-builder, electron-updater (ausgereiftes Ökosystem)
ReifePre-1.0Stabil, über ein Jahrzehnt im produktiven Einsatz

Wo Perry gewinnt

  • +Binary-Größe. Ein Perry-Hello-World ist ~330 KB; ein Electron-Hello-World ist typischerweise 80–150 MB groß, weil jede App ihr eigenes Chromium ausliefert.
  • +Speicher-Footprint. Perry-Apps laufen als ein einzelner nativer Prozess; Electron-Apps laufen als mehrere Chromium-Prozesse (Renderer, GPU, Utility etc.) und verbrauchen im Leerlauf hunderte MB RAM.
  • +Natives Look-and-Feel. Perry rendert über echte Plattform-Widgets, sodass Apps OS-Konventionen (Fokusringe, Barrierefreiheit, IME, Scroll-Physik) automatisch erben.
  • +Mobile, Watch, TV. Eine Perry-Codebasis kompiliert für iOS/iPadOS/Android/watchOS/tvOS/Wear OS. Electron läuft nur auf Desktop.
  • +Cold Start. Native Binaries zahlen keine Chromium- und Node-Startup-Kosten.
  • +Echte CPU-Performance bei tightem Code. Perry führt in Compute-Mikrobenchmarks gegen Node (das Electron nutzt) bei den meisten Kerneln um ein Vielfaches (siehe perry/benchmarks).

Wo Electron gewinnt

  • +Reife. Electron ist seit über einem Jahrzehnt im produktiven Einsatz und treibt VS Code, Slack, Discord und viele andere Apps mit erprobtem Tooling an.
  • +Web-Stack-Wiederverwendung. Wenn dein Team bereits Web-UIs baut, kannst du sie mit Electron als Desktop-App ohne Rewrite ausliefern.
  • +UI-Konsistenz über Plattformen hinweg ist einfach — Chromium rendert auf jedem OS gleich, was genau das ist, was manche Produkte wollen.
  • +Riesiges Ökosystem an npm-Bibliotheken funktioniert zur Laufzeit; Perry führt einen Teil nativ aus, und das opt-in V8 deckt den Rest ab.
  • +Ausgereiftes Paketierungs-Tooling (electron-builder, electron-updater, Code-Signing-Helfer) mit breiter Community-Unterstützung.
  • +Web-native Features wie DevTools, Hot Reload und flüssige CSS/HTML-Iterationsgeschwindigkeit sind unerreicht.

Wann Perry wählen

Wähle Perry, wenn du kleine native Binaries, niedrigen Speicherverbrauch, natives Look-and-Feel pro Plattform oder eine TypeScript-Codebasis willst, die zusätzlich zu Desktop auch für Mobile/Watch/TV ausliefert.

Wann Electron wählen

Wähle Electron, wenn du eine bestehende Web-UI hast und sie als Desktop-App mit minimalem Rewrite ausliefern willst, wenn du maximale plattformübergreifende UI-Konsistenz auf Desktop brauchst, oder wenn du auf eine breite Palette reiner JS-Bibliotheken zur Laufzeit angewiesen bist.

Fazit

Electron und Perry sitzen an entgegengesetzten Enden des plattformübergreifenden Spektrums. Electron tauscht Binary-Größe und Speicher gegen Web-Tech-Wiederverwendung; Perry tauscht den Web-Stack gegen native Binaries und native UI. Wenn du gesehen hast, wie der Installer deiner Electron-App über 150 MB wuchs oder ihr Idle-RAM ein halbes Gigabyte überschritt, ist Perry die Antwort auf genau dieses Problem — auf Kosten eines anderen, nativ orientierten UI-Modells.

Perry ausprobieren

Kompiliere dein TypeScript noch heute zu nativem Code.

Loslegen