Immer laufend, oder bei Bedarf geöffnet
Ein Programm, das du startest, benutzt und beendest, wird danach beurteilt, wie gut es seine Arbeit macht. Es darf eine Sekunde zum Starten brauchen und ein paar hundert Megabyte halten, solange es offen ist. Beides verzeihst du, denn die Alternative ist, die Funktion nicht zu haben.
Ein Programm, das vom Anmelden bis zum Herunterfahren in deiner Menüleiste sitzt, wird anders beurteilt, und das soll es auch. Es hält Speicher, während du etwas anderes tust, und es prägt, wie sich der ganze Rechner anfühlt. Ein Menüleisten-Helfer hat bei 300 MB nichts zu suchen. Auf dieser Meinung ruht der Rest hier.
Der Satz der immer laufenden Programme ist klein und bestimmt. Zwischenablage-Verwaltung, Fensterverwaltung, Starter, Bildschirmfoto-Werkzeug, Menüleisten-Ordner, Systemanzeige. Sechs Prozesse mit deinen Anmeldeobjekten, und jedes Megabyte darin ist dauerhaft.
Electron ist ein vernünftiger Handel, und hier ist wann
Drei Plattformen, ein Team. Wenn deine Nutzer auf macOS, Windows und Linux sitzen und du vier Entwickler hast, ist Electron die vernünftige Antwort. Die Alternative sind drei Codebasen und drei Sätze Plattformfehler, und die dritte wird nie fertig.
Komplexe Oberflächen, die du fürs Web schon gebaut hast. VS Code, Slack, Discord und Notion sind Electron-Programme, die eine Menge leisten. Sie zeichnen Dokumente, Editoren und reichhaltige Unterhaltungen, und sie sind auf jedem Schreibtisch deines Teams gleich. Das für eine Plattform in AppKit neu zu schreiben würde Jahre dauern und ein schlechteres Produkt ausliefern.
Eine gemeinsame Web-Anwendung darunter. Wenn das Schreibtisch-Programm ein Blick auf denselben Dienst ist, den der Browser zeigt, ist es ehrliche Ingenieursarbeit und keine Faulheit, die Zeichenschicht zu teilen.
In meinem eigenen Programm ist jedes Bedienelement AppKit und SwiftUI. Der Grund, dass mir das wichtig ist, ist nicht optische Reinheit. Es ist, dass das Fenster die Textbehandlung, das Tastaturverhalten und die Barrierefreiheit des Systems kostenlos erbt, ohne dass ich irgendetwas davon nachbaue.
Der Teil, den niemand bewirbt: Nativ bekommt man die Konventionen der Plattform gratis dazu — und auch ihre Fehler. Beides gehört zum Handel.
Noch ein Punkt für Electron. Ein gut gebautes Electron-Programm schlägt jedes Mal ein schlecht gebautes natives. Nativ ist keine Qualitätsgarantie. Es gibt reichlich langsame, hässliche, schlecht erzogene AppKit-Software, und ich habe während der Entwicklung selbst welche ausgeliefert.
Wo der Handel zerbricht
Eine Browser-Maschine mitzuliefern, um eine Liste mit zehn Zeilen zu zeichnen, ist die Stelle, an der ich aufhöre, sie zu verteidigen. Eine Zwischenablage-Verwaltung liest die Ablage, speichert Zeichenketten und Bilder und zeigt ein kleines Fenster. Nichts davon braucht eine Zeichenmaschine, die für beliebige Webseiten gebaut wurde. Die Maschine hat außerdem einen Speicher-Grundbedarf, bevor dein Code irgendetwas tut.
Der Grundbedarf ist das Problem, nicht die Spitze. Eine Browser-Maschine, die in einen Prozess geladen ist, der nie beendet wird, hält ihren Speicher den ganzen Tag, ganz gleich, ob du etwas kopiert hast. Multiplizier das mit den fünf oder sechs Helfern, die Leute tatsächlich betreiben, und der Rechner fühlt sich anders an.
Auch die Startzeit zählt für diese Programmklasse mehr, als es klingt. Du drückst ein Kürzel und erwartest das Fenster sofort. Das ist ein hartes Ziel, wenn als Erstes ein JavaScript-Laufzeitsystem aufwachen muss.
Die Messlatte, an der ich mich messe
Shottr ist rund 1 MB groß und schneller als das Bildschirmfoto-Werkzeug des Systems. Diese Besessenheit für Tempo ist genau meine Art von Unvernunft, und das ist der Maßstab, an dem ich messe, statt am aufgeblähten Ende des Marktes. Sich mit der schlechtesten verfügbaren Möglichkeit zu vergleichen ist der Weg, mittelmäßig zu werden.
Die kostenlosen quelloffenen Zwischenablage-Programme halten dieselbe Linie unter 2 MB. Sie sind schnell, weil sie sich weigern, sehr viel zu tun, und sie sind kleiner als wir.