Hva er Electron Apps, og hvorfor har de blitt så vanlige?
Har du lagt merke til mange nye skrivebordsapplikasjoner ser stort sett ut som nettsteder? Det er ikke fantasien din.
Fra Trello til Slack, fra WordPress.com til Github, er det blitt stadig vanligere for såkalte desktop applikasjoner å pakke et nettsted med noen innfødte funksjoner som varsler, filsystemtilgang og menyer. Den vanligste teknologien som muliggjør dette kalles Electron, og den brukes av noen få programmer du kanskje ikke engang mistenker, som chatprogram Discord og Microsofts Visual Studio Code.
Elektron gjør det enkelt for utviklere å frigjøre en app samtidig på Windows, MacOS og Linux, men det er ulemper for brukere. Elektronapplikasjoner er store, for en ting. Slakk, et chatprogram, tar opp 237 MB harddiskplass på min Mac, og minnekonsumet er heller ikke lavt. Hva tar opp alle disse ressursene? Og hvorfor bruker utviklere å bruke noe så ineffektivt?
Elektronapplikasjoner er ganske enkle å lage
Skrivebordsprogrammer er vanskelig å lage, spesielt hvis du vil at de skal være på tvers av plattformen. Å få tilgang til filsystemet virker annerledes i Windows enn det i Linux, for eksempel, og meldinger fungerer annerledes på MacOS enn i Windows. Dette betyr at alle som ønsker å skrive en applikasjon for alle de tre stasjonære operativsystemene (eller to av dem) må skrive mye av koden sin når de portretteres fra en til en annen.
Electron "løser" dette ved å tilby en enkelt plattform som fungerer på alle tre store stasjonære operativsystemer. Dette betyr at utviklere kan skrive koden for ting som varsler en gang, og forventer at det skal fungere naturlig på alle operativsystemer. Enda bedre for utviklere: Alt kan bygges ved hjelp av Javascript, HTML og CSS-teknologi. Alle som koder for nettet, er veldig kjent med.
Electron Apps kommer med ganske mye alt krom
Hvordan er dette mulig? Til dels fordi hver Electron app bunter en komplett nettleser: Chromium, åpen kildeversjon av Google Chrome. Dette er kombinert med de plattformspesifikke instruksjonene for å sikre at alt oppfører seg akkurat som utviklere forventer på alle systemer. Derfor tar desktopversjonen av Slack opp over 200 MB harddiskplass: det meste av Chrome er pakket der inne.
Hver Electron app du kjører, er mer eller mindre en fullstendig forekomst av Chrome. Som blogger Joseph Gentle påpekt, er dette nesten ikke ideelt:
Du kan tenke på Slack som et lite javascriptprogram som kjører inne i et annet operativsystem VM (krom), som du må løpe for å kunne snakke i hovedsak på IRC. Selv om du har den virkelige kromopen, kjører hver elektronikkapp sin egen, ekstra kopi av hele VM.
Så ja, det er ulemper for brukere. Først og fremst, hver eneste elektronapplikasjon du laster ned bunter mesteparten av krom, og hvert program du kjører, utfører en god del av den koden. Det er ingen deling av ressurser her som det er med innfødte applikasjoner, noe som betyr at Electron-apps skal ta opp mer harddiskplass og minne enn et program utviklet med plattformen, spesielt i tankene. Hvis ytelse er noe du virkelig bryr deg om, vil du kanskje unngå Electron-applikasjoner.
Vent, så er elektronen god eller dårlig?
På dette tidspunktet er datamaskiner så kraftige at de fleste brukere aldri vil merke til hvordan ineffektive elektronapplikasjoner er. Faktisk har det store flertallet aldri engang hørt om Electron. De fleste av mine medarbeidere hadde ikke, og de bruker alle Slack hver dag. Mange var glade for å se en desktop versjon av Trello komme ut, og igjen hadde ingen anelse om at det var en Electron app.
Og disse appene integrerer virkelig bedre med operativsystemet ditt bedre enn nettsteder. De bor i eget vindu. De tilbyr gode hurtigtastene, innfødte varsler og andre ting du ikke kan gjøre på samme måte med bare en nettleser.
Og det er en god innsats at programmer som Slack, Trello og WordPress.com ikke ville plage å tilby en desktop versjon hvis Electron ikke eksisterte, fokuserer i stedet på mobil- og nettleserversjoner. Så spørsmålet er ikke om Electron er dårlig; det er om elektronapplikasjoner er bedre enn ingenting. Jeg er villig til å si ja, men rimelige mennesker kan være uenige. (Og hei, for de menneskene, er det alltid nettversjonen.)