Site icon Tosolini.info

Perché Electron

Ammetto che inizialmente dopo aver visto il progetto Electron di Github, erano gli inizi, la mi reazione fu “vabbè…”. A distanza di tempo invece ho dovuto ricredermi.

Electron è un Framework che permette di creare programmi cross platform (Windows, MacOS, Linux) utilizzando Javascript, CSS e HTML. Questo è quello che si legge nel sito ufficiale, in realtà nella “triade” Javascript è un po’ impreciso come indicazione benché corretta. Infatti può anche utilizzare vanilla Javascript (cioè il linguaggio core) ma in realtà è necessario l’utilizzo di Node.js. Ovvero Node.js permette l’utilizzo di JS (javascript) in computazioni lato server oltre che quelle “canoniche” lato client, e questo permette di ampliare la visione di insieme in modo consistente.

Restano chiaramente dei dubbi. Che livello di complessità o iterazione con il sistema operativo potrò mai raggiungere utilizzando solo JS, CSS e HTML? Qui è venuto in aiuto il tempo, ovvero da quando lo vidi ad oggi i programmi sono entrati nel mercato e molti di essi potreste averli utilizzati senza sospettare minimamente che dietro di essi ci sia HTML e fogli di stile come in un qualsiasi sito web. Alla pagina https://electronjs.org/apps potete farvi una idea su cosa Electron possa fare. Per citare i più famosi, sicuramente Atom o Visual Studio Code e il celebre Slack.

Electron quindi per poter far girare tecnologie web utilizza un browser integrato, ovvero una versione destrutturata di Chromium. E qui nasce la seconda domanda, “ma allora se gira su un browser posso fare lo stesso anche senza Electron?“. Si e no, nel senso che per interagire con il sistema operativo è necessario Electron, ma per i programmi che si appoggiano a server online o esterni, probabilmente no. Questo in realtà è un doppio vantaggio. Ad esempio ho una webapp e per dare più “forza o credibilità” creo senza troppe difficoltà una “pseudo” versione desktop. In seconda analisi con Electron posso eliminare in un colpo solo tutte le problematiche derivate dalle varie incompatibilità di interpretazione che i vari browser si portano dietro. Ovvero se una cosa funziona bene in Chrome potrebbe non essere lo stesso per Firefox o Edge e viceversa. Questo richiede di perdere tempo e codice per risolvere questi problemi; tempo e codice che non andrete a sprecare nel caso di Electron, perché il browser è uno, se funziona in sviluppo funziona in produzione per tutti.

Chiaramente negli ultimi 10 anni l’introduzione di Ajax e webapp ha permesso appunto di “staccarsi” dal vincolo del programma stesso, che poi doveva essere aggiornato non senza problemi. Anche in questo settore Electron ha risolto non pochi problemi. Esiste (più di ) un sistema centralizzato che permette al nuovo rilascio di una nuova versione, di informare il programma che è presente un aggiornamento. Un pò come avviene nei vari play o app store degli smartphone. Il programma però come detto può essere ibrido, ovvero la funzione di promiscuità con le funzioni online e offline è molto ampia. Ed infine permette con un codice solo di compilare eseguibili per Windows, MacOS o Linux, quindi di mantenere in modo relativamente semplice una versione per tre sistemi operativi diversi. Si veda in tal senso il già citato caso di Visual Studio Code, dove per la prima volta un programma Microsoft fa capolino dentro il mondo desktop del pinguino, dove in realtà gli sviluppatori non hanno dovuto imparare nuovi linguaggi di programmazione specifici.

Quindi non è esente da difetti? Beh, magari. I difetti ci sono sempre, sebbene nel caso specifico siano alla fine ben minori dei vantaggi. Gli eseguibili e le risorse richieste al sistema non sono paragonabili ad un potenziale programma scritto nativamente per quel sistema operativo. Il secondo risulterà più leggero e più snello nel suo funzionamento. Tuttavia questa considerazione può avere riscontro su computer con poca potenza computazionale e poca memoria RAM, mentre su un moderno laptop sarà difficile accorgersi della differenza.

Exit mobile version