Da Trello a Slack, da WordPress.com a Github, è diventato sempre più comune per le cosiddette applicazioni desktop raggruppare un sito Web con alcune funzionalità native come notifiche, accesso al file system e menu. La tecnologia più comune che consente questo è chiamata Electron ed è utilizzata da alcune applicazioni che potresti non sospettare, come l'applicazione di chat Discord e il codice di Visual Studio di Microsoft.
Electron rende più semplice per gli sviluppatori rilasciare un'app simultaneamente su Windows, macOS e Linux, ma ci sono aspetti negativi per gli utenti. Le applicazioni di elettroni sono enormi, per una cosa. Slack, un'applicazione di chat, occupa 237 MB di spazio su disco sul mio Mac e il consumo di memoria non è basso. Cosa sta prendendo tutte queste risorse? E perché gli sviluppatori usano qualcosa di così inefficiente?
Le app di Electron sono abbastanza facili da realizzare
Electron "risolve" questo offrendo una singola piattaforma che funziona su tutti e tre i principali sistemi operativi desktop. Ciò significa che gli sviluppatori possono scrivere il codice per cose come le notifiche una volta e si aspettano che funzioni in modo nativo su tutti i sistemi operativi. Ancora meglio per gli sviluppatori: tutto può essere creato utilizzando le tecnologie Javascript, HTML e CSS a cui tutti coloro che codificano per il web hanno molta familiarità.
Le app di elettroni sono dotate di quasi tutto il Chromium
Com'è possibile? In parte perché ogni app di Electron raggruppa un browser web completo: Chromium, la versione open source di Google Chrome. Questo è in bundle con le istruzioni specifiche della piattaforma al fine di garantire che tutto si comporti esattamente come gli sviluppatori si aspettano su tutti i sistemi. Ecco perché la versione desktop di Slack occupa oltre 200 MB di spazio su disco rigido: la maggior parte di Chrome è inclusa.
You can think of Slack as a small javascript program running inside another operating system VM (chrome), that you have to run in order to essentially chat on IRC. Even if you’ve got the real chrome open, each electron app runs its own, extra copy of the whole VM.
Quindi sì, ci sono aspetti negativi per gli utenti. Prima di tutto, ogni singola applicazione Electron che scarichi mette insieme gran parte di Chromium e ogni applicazione che esegui sta eseguendo una buona parte di quel codice. Non c'è condivisione di risorse qui come con le applicazioni native, il che significa che le app di Electron occuperanno più spazio su disco e memoria rispetto a un'applicazione sviluppata appositamente per la tua piattaforma. Se le prestazioni sono qualcosa che ti interessa davvero, potresti voler evitare le applicazioni Electron.
Aspetta, quindi l'elettrone è buono o cattivo?
E queste app si integrano davvero meglio con il tuo sistema operativo meglio dei siti web. Vivono nella loro finestra. Offrono ottime scorciatoie da tastiera, notifiche native e altre cose che non è possibile fare allo stesso modo con un semplice browser.
Ed è una buona scommessa che applicazioni come Slack, Trello e WordPress.com non si preoccuperebbero di offrire una versione desktop se Electron non esistesse, concentrandosi invece su versioni mobile e browser. Quindi la domanda non è se Electron sia cattivo; è se le applicazioni Electron siano meglio di niente. Sono disposto a dire di sì, ma le persone ragionevoli non sono d'accordo. (E hey, per quelle persone, c'è sempre la versione web.)