Jeste li primijetili da mnoge nove aplikacije za stolno računalo prilično sliče web stranicama? Nije vaša mašta.
Od Trello do Slack, od WordPress.com do Github, postaje sve uobičajeniji za tzv. Desktop aplikacije za povezivanje web stranice s nekoliko izvornih značajki kao što su obavijesti, pristup datotekama i izbornicima. Najčešća tehnologija koja to omogućuje naziva se Electron, a upotrebljava ga nekoliko aplikacija koje možda čak ne sumnjate, primjerice, Discord aplikacija za chat i Microsoftov Visual Studio kod.
Electron olakšava razvojnim programerima istovremeno objavljivanje aplikacije na Windowsima, MacOS-u i Linuxu, ali korisnicima postoje mane. Elektroničke aplikacije su ogromne, za jednu stvar. Slack, aplikacija za chat, zauzima 237 MB prostora na tvrdom disku na Macu, a potrošnja memorije ni niska. Što uzima sve te resurse? I zašto programeri koriste nešto tako neučinkovito?
Aplikacije na stolnim računalima teško se izrađuju, pogotovo ako želiš da budu cross-platforma. Pristup datotečnom sustavu funkcionira drugačije u sustavu Windows nego na Linuxu, a obavijesti različito funkcioniraju na MACOS nego u sustavu Windows. To znači da svatko tko želi napisati aplikaciju za sva tri operacijska sustava za stolna računala (ili čak i dva od njih) mora ponovno napisati puno svog koda kada prenosi iz jedne u drugu.
Electron "rješava" ovo nudeći jednu platformu koja radi na sva tri glavna operacijskog sustava za stolna računala. To znači da programeri mogu napisati kôd za stvari kao što su obavijesti jednom i očekivati da radi nativno na svakom operativnom sustavu. Čak i bolje za programere: sve se može graditi pomoću JavaScript, HTML i CSS tehnologija svatko tko kodira za web vrlo su upoznati.
Kako je ovo moguće? Djelomično jer svaka aplikacija za Electron snima kompletan web-preglednik: Chromium, open source verzija preglednika Google Chrome. To je u paketu zajedno s uputama specifičnim za platformu kako bi se osiguralo da se sve ponaša točno onako kako se programeri očekuju na svim sustavima. Zato je verzija aplikacije Slack zauzimaju više od 200 MB prostora na tvrdom disku: većina Chrome je u paketu.
Svaka aplikacija za Electron koju upotrebljavate više ili manje predstavlja punu instancu Chromea. Kao što je istaknuo bloger Joseph Gentle, to je jedva idealno:
Slack se može smatrati malim javascript programom koji se izvodi unutar drugog operacijskog sustava VM (chrome), koji morate pokrenuti kako biste u osnovi razgovarali o IRC-u. Čak i ako imate pravi krom otvoren, svaka aplikacija za elektroni ima vlastitu, dodatnu kopiju cijelog VM-a.
Dakle, postoje korisnici za padove. Prije svega, svaka pojedina Electron aplikacija preuzima pakete većine Chromiuma, a svaka aplikacija koju pokrenete izvršava dobar komad tog koda. Ovdje nema dijeljenja resursa kao što je to slučaj s izvornim aplikacijama, što znači da će Electron aplikacije zauzimati više prostora na disku i memoriji nego aplikacija razvijena uz vašu platformu, posebno na umu. Ako je izvedba nešto zaista važno, možda biste željeli izbjeći aplikacije za Electron.
U ovom trenutku, računala su toliko snažna da većina korisnika nikada neće primijetiti koliko su neučinkoviti elektronički programi. Zapravo, velika većina nikada nije ni čula za Electron. Većina mojih suradnika nije imala, i svi oni svakodnevno koriste zastoj. Mnogi su bili uzbuđeni kada su vidjeli desktop verziju Trelloa i nije imala pojma da je riječ o Electron appu.
A te se aplikacije bolje integriraju s vašim operativnim sustavom bolje od web stranica. Žive u vlastitom prozoru. Oni nude sjajne tipkovničke prečace, izvorne obavijesti i druge stvari koje ne možete učiniti na isti način samo s preglednikom.
I dobro je što aplikacije kao što su Slack, Trello i WordPress.com ne žele ponuditi desktop verziju ako Electron ne postoji, usredotočujući se na mobilne i verzije preglednika. Stoga nije pitanje je li Electron loš; to je je li Electron aplikacije bolje od ništa. Ja sam spreman reći da, ali razumni ljudi se ne slažu. (I hej, za te ljude uvijek postoji web verzija.)