Hvad er Electron Apps, og hvorfor har de været så almindelige?
Har du bemærket mange nye desktop applikationer ser stort set ud som hjemmesider? Det er ikke din fantasi.
Fra Trello til Slack, fra WordPress.com til Github, er det blevet mere og mere almindeligt for såkaldte desktop applikationer at kombinere et websted med nogle få indfødte funktioner som meddelelser, filsystemadgang og menuer. Den mest almindelige teknologi, der gør det muligt at kalde dette, kaldes Electron, og det bruges af nogle få applikationer, som du måske ikke engang har mistanke om, ligesom chatprogram Discord og Microsofts Visual Studio Code.
Electron gør det nemt for udviklere at frigive en app samtidigt på Windows, MacOS og Linux, men der er ulemper for brugere. Elektron applikationer er enorme, for en ting. Slack, en chat-applikation, optager 237 MB plads på harddisken på min Mac, og hukommelsesforbruget er heller ikke lavt. Hvad tager alle disse ressourcer op? Og hvorfor bruger udviklerne noget så ineffektivt?
Electron Apps er ret nemt at lave
Desktop applikationer er svært at lave, især hvis du vil have dem til at være cross-platform. Adgang til filsystemet fungerer forskelligt i Windows, end for eksempel i Linux, og meddelelser fungerer forskelligt på MacOS end i Windows. Det betyder, at alle, der ønsker at skrive en ansøgning for alle tre desktop-operativsystemer (eller endda to af dem), skal skrive meget af deres kode igen, når de overføres fra den ene til den anden.
Electron "løser" dette ved at tilbyde en enkelt platform, der fungerer på alle tre store desktop-operativsystemer. Dette betyder, at udviklere kan skrive koden til ting som meddelelser en gang og forventer, at det fungerer indbygget på alle operativsystemer. Endnu bedre for udviklere: Alt kan bygges ved hjælp af Javascript, HTML og CSS-teknologier. Alle, der koder for internettet, er meget bekendt med.
Electron Apps kommer med stort set hele krom
Hvordan er det muligt? Til dels fordi hver Electron app bundter en komplet webbrowser: Chrom, open source-versionen af Google Chrome. Dette er bundtet sammen med de platformspecifikke instruktioner for at sikre, at alt opfører sig nøjagtigt som udviklere forventer på alle systemer. Det er derfor, at desktopversionen af Slack tager op over 200 MB harddiskplads: Det meste af Chrome er bundtet derinde.
Hver Electron app du kører er mere eller mindre en fuld forekomst af Chrome. Som blogger Joseph Gentle påpegede, er dette næppe ideelt:
Du kan tænke på Slack som et lille javascript-program, der kører inde i et andet operativsystem VM (chrome), som du skal køre for at kunne chatte på IRC. Selvom du har den rigtige krom åben, kører hver elektronik app sin egen ekstra kopi af hele VM.
Så ja, der er ulemper for brugere. Først og fremmest downloader hver eneste elektron-applikation bundter det meste af Chromium, og hver applikation, du kører, udfører en god del af den pågældende kode. Der er ingen deling af ressourcer her, som der er med indbyggede applikationer, hvilket betyder, at Electron apps vil tage mere plads på harddisken og hukommelsen end en applikation udviklet med din platform specifikt i tankerne. Hvis ydeevne er noget, du virkelig bekymrer dig om, kan du undgå elektronprogrammer.
Vent, så er elektronen god eller dårlig?
På dette tidspunkt er computere så kraftfulde, at de fleste brugere aldrig engang vil se, hvordan ineffektive elektronprogrammer er. Faktisk har det store flertal aldrig engang hørt om Electron. De fleste af mine kolleger havde ikke, og de bruger alle Slack hver dag. Mange var spændte på at se en desktop version af Trello komme ud, og igen havde ingen anelse om, at det var en Electron app.
Og disse apps integrerer virkelig bedre med dit operativsystem bedre end hjemmesider. De bor i deres eget vindue. De tilbyder fantastiske tastaturgenveje, indgående beskeder og andre ting, du ikke kan gøre på samme måde med bare en browser.
Og det er en god indsats, at applikationer som Slack, Trello og WordPress.com ikke ville genere at tilbyde en desktop version, hvis Electron ikke eksisterede, fokuserer i stedet på mobile og browser versioner. Så spørgsmålet er ikke, om Electron er dårlig; det er om elektron applikationer er bedre end ingenting. Jeg er villig til at sige ja, men rimelige mennesker kan være uenige. (Og hej, for de mennesker, der er altid webversionen.)