Quali sono le app di Electron e perché sono così comuni?
Avete notato che molte nuove applicazioni desktop sembrano più o meno come i siti Web? Non è la tua immaginazione.
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 facile 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
Le applicazioni desktop sono difficili da realizzare, soprattutto se si desidera che siano multipiattaforma. L'accesso al file system funziona in modo diverso in Windows rispetto a Linux, ad esempio, e le notifiche funzionano diversamente su macOS che su Windows. Ciò significa che chiunque desideri scrivere un'applicazione per tutti e tre i sistemi operativi desktop (o anche due di essi) ha bisogno di riscrivere molto del loro codice durante il porting da uno all'altro.
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 ogni sistema operativo. 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: la maggior parte di Chrome è inclusa.
Ogni app Electron che esegui è più o meno un'istanza completa di Chrome. Come ha sottolineato il blogger Joseph Gentle, questo non è l'ideale:
Puoi pensare a Slack come un piccolo programma javascript in esecuzione su un altro sistema operativo VM (chrome), che devi eseguire per poter essenzialmente chattare su IRC. Anche se hai il vero chrome aperto, ogni app electron esegue la propria copia extra dell'intera VM.
Quindi sì, ci sono aspetti negativi per gli utenti. Prima di tutto, ogni singola applicazione Electron che scarichi raggruppa la maggior 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?
A questo punto, i computer sono così potenti che la maggior parte degli utenti non noterà mai quanto siano inefficienti le applicazioni Electron. In effetti, la stragrande maggioranza non ha mai nemmeno sentito parlare di Electron. La maggior parte dei miei colleghi non l'ha fatto, e tutti usano Slack ogni giorno. Molti erano entusiasti di vedere una versione desktop di Trello uscire, e di nuovo non aveva idea che fosse un'app Electron.
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 preoccupino 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.)