Har du märkt att många nya skrivbordsapplikationer ser ut som webbplatser? Det är inte din fantasi.
Från Trello till Slack, från WordPress.com till Github, blir det allt vanligare att så kallade stationära applikationer samlar en webbplats med några inbyggda funktioner som aviseringar, filsystemåtkomst och menyer. Den vanligaste tekniken som möjliggör detta kallas Elektron , och det används av några applikationer som du kanske inte ens misstänker chattapplikation Discord och Microsofts Visual Studio-kod .
Electron gör det enkelt för utvecklare att släppa en app samtidigt på Windows, macOS och Linux, men det finns nackdelar för användarna. Elektronapplikationer är enorma, för en sak. Slack, en chattapplikation, tar upp 237 MB hårddiskutrymme på min Mac och minnesförbrukningen är inte heller låg. Vad tar upp alla dessa resurser? Och varför använder utvecklare något så ineffektivt?
Elektronappar är ganska lätta att göra
Skrivbordsapplikationer är svåra att skapa, speciellt om du vill att de ska vara plattformar. Åtkomst till filsystemet fungerar annorlunda i Windows än till exempel i Linux, och aviseringar fungerar annorlunda på macOS än i Windows. Det betyder att alla som vill skriva en applikation för alla tre stationära operativsystem (eller till och med två av dem) behöver skriva om mycket av sin kod när de överförs från ett till ett annat.
Electron "löser" detta genom att erbjuda en enda plattform som fungerar på alla tre stora stationära operativsystem. Detta innebär att utvecklare kan skriva koden för saker som aviseringar en gång och förvänta sig att den fungerar inbyggt på alla operativsystem. Ännu bättre för utvecklare: allt kan byggas med Javascript, HTML och CSS - tekniker som alla som koder för webben känner mycket till.
Elektronappar kommer med nästan allt krom
Hur är detta möjligt? Delvis för att varje Electron-app buntar en komplett webbläsare: Chromium, den öppna källkodsversionen av Google Chrome . Detta är buntat tillsammans med de plattformsspecifika instruktionerna för att säkerställa att allt beter sig exakt som utvecklare förväntar sig på alla system. Det är därför skrivbordsversionen av Slack tar upp mer än 200 MB hårddiskutrymme: det mesta av Chrome finns där inne.
Varje Electron-app du kör är mer eller mindre en fullständig instans av Chrome. Som bloggare Joseph Gentle Pekat ut , detta är knappast idealiskt:
Du kan tänka på Slack som ett litet javascript-program som körs i ett annat operativsystem-VM (krom), som du måste köra för att i princip kunna chatta på IRC. Även om du har öppnat det riktiga kromen, kör varje elektronapp sin egen extra kopia av hela den virtuella datorn.
Så ja, det finns nackdelar för användarna. Först och främst buntar varje enskild Electron-applikation som du laddar ner det mesta av Chromium, och varje applikation du kör kör en bra bit av den koden. Det finns ingen delning av resurser här som med inbyggda applikationer, vilket innebär att Electron-appar kommer att ta mer hårddiskutrymme och minne än en applikation som utvecklats med din plattform specifikt i åtanke. Om prestanda är något du verkligen bryr dig om kanske du vill undvika elektronapplikationer.
Vänta, så är elektron bra eller dåligt?
Vid den här tiden är datorer så kraftfulla att de flesta användare inte ens kommer att märka hur ineffektiva elektronapplikationer är. I själva verket har de allra flesta aldrig ens hört talas om Electron. De flesta av mina medarbetare hade inte det, och de använder alla Slack varje dag. Många var glada att se en stationär version av Trello komma ut, och hade ingen aning om att det var en elektronapp.
Och dessa appar integreras verkligen bättre med ditt operativsystem bättre än webbplatser. De bor i sitt eget fönster. De erbjuder fantastiska kortkommandon, integrerade aviseringar och andra saker som du inte kan göra på samma sätt med bara en webbläsare.
Och det är en bra insats att applikationer som Slack, Trello och WordPress.com inte skulle bry sig om att erbjuda en stationär version om Electron inte fanns, utan istället fokusera på mobil- och webbläsarversioner. Så frågan är inte om Electron är dåligt; det är om elektronapplikationer är bättre än ingenting. Jag är villig att säga ja, men rimliga människor kan inte hålla med. (Och hej, för dessa människor finns det alltid webbversionen.)