Har du bemærket, at mange nye desktop-applikationer ligner stort set websteder? 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 samle et websted med et par indbyggede funktioner som underretninger, filsystemadgang og menuer. Den mest almindelige teknologi, der muliggør dette, kaldes Elektron , og det bruges af et par applikationer, som du måske ikke engang har mistanke om chat-applikation Discord og Microsofts Visual Studio-kode .
Electron gør det let for udviklere at frigive en app samtidigt på Windows, macOS og Linux, men der er ulemper for brugerne. Elektronapplikationer er enorme, for en ting. Slack, en chatapplikation, optager 237 MB plads på harddisken på min Mac, og hukommelsesforbruget er heller ikke lavt. Hvad tager alle disse ressourcer op? Og hvorfor bruger udviklere noget så ineffektivt?
Elektronapps er ret nemme at lave
Desktop-applikationer er svære at lave, især hvis du vil have dem på tværs af platforme. Adgang til filsystemet fungerer anderledes i Windows, end det gør i Linux, og meddelelser fungerer forskelligt på macOS end i Windows. Dette betyder, at enhver, der ønsker at skrive en applikation til alle tre desktopoperativsystemer (eller endda to af dem) skal omskrive meget af deres kode, når de porteres 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 forvente, at den fungerer indbygget på hvert operativsystem. Endnu bedre for udviklere: Alt kan bygges ved hjælp af Javascript, HTML og CSS — teknologier, som alle, der koder til internettet, er meget fortrolige med.
Elektronapps kommer med stort set alt krom
Hvordan er det muligt? Dels fordi hver Electron-app pakker en komplet webbrowser: Chromium, open source-versionen af Google Chrome . Dette er samlet sammen med de platformsspecifikke instruktioner for at sikre, at alt fungerer nøjagtigt som udviklere forventer på alle systemer. Derfor tager desktopversionen af Slack over 200 MB plads på harddisken: det meste af Chrome er samlet derinde.
Hver Electron-app, du kører, er mere eller mindre en fuld forekomst af Chrome. Som blogger Joseph Gentle påpegede , dette er næppe ideelt:
Du kan tænke på Slack som et lille javascript-program, der kører inde i et andet operativsystem-VM (krom), som du skal køre for i det væsentlige at chatte på IRC. Selvom du har åbent den ægte krom, kører hver elektronapp sin egen ekstra kopi af hele VM.
Så ja, der er ulemper for brugerne. Først og fremmest bundter hver eneste elektronapplikation, du downloader, det meste af Chromium, og hver applikation, du kører, udfører en god del af den kode. Der er ingen deling af ressourcer her, som der er med native applikationer, hvilket betyder, at Electron-apps vil tage mere plads på harddisken og hukommelsen end en applikation, der er udviklet med din platform specifikt i tankerne. Hvis ydeevne er noget, du virkelig holder af, vil du måske undgå elektronapplikationer.
Vent, så er elektron godt eller dårligt?
På dette tidspunkt er computere så kraftfulde, at de fleste brugere aldrig engang vil bemærke, hvor ineffektive elektronapplikationer er. Faktisk har langt de fleste aldrig engang hørt om Electron. De fleste af mine kolleger havde ikke, og de bruger alle Slack hver dag. Mange var glade for at se en desktopversion af Trello komme ud, og havde igen ingen anelse om, at det var en elektronapp.
Og disse apps integreres virkelig bedre med dit operativsystem bedre end websteder. De bor i deres eget vindue. De tilbyder gode tastaturgenveje, native notifikationer 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 gider at tilbyde en desktopversion, hvis Electron ikke eksisterede og i stedet fokuserer på mobil- og browserversioner. Så spørgsmålet er ikke, om Electron er dårlig; det er, om elektronapplikationer er bedre end ingenting. Jeg er villig til at sige ja, men fornuftige mennesker kan være uenige. (Og hej, for disse mennesker er der altid internetversionen.)