inizi a esaminare Electron, è probabile che tu abbia visto qualcosa su NW.js o Node-WebKit. Entrambi usano il motore Chromium sotto il cofano, ma ci sono alcune differenze significative tra
NW.js ed Electron.
Pertanto, se stai cercando di capire quale sia la scelta migliore per la tua prossima app desktop, continua a leggere. Ecco un confronto testa a testa di NW.js ed Electron per vedere come si accumulano l’uno contro l’altro.
Cominciamo con le informazioni di base su entrambi i progetti.
NW.js vs. Electron: cos’è NW.js?
NW.js, precedentemente noto come Node-WebKit, è un progetto avviato all’inizio del 2011 da uno sviluppatore indipendente di nome Ariya Hidayat dopo aver lasciato Intel, dove ha lavorato al Node-Webkit originale.
Utilizza il motore JavaScript Chromium e V8 e può essere eseguito su Mac, Windows e Linux.
Uno degli obiettivi originali di NW.js era quello di fungere da wrapper per i contenuti Web in modo che gli sviluppatori potessero creare facilmente app desktop con la moderna tecnologia Web. Supportava anche i moduli Node.js immediatamente disponibili, rendendolo una scelta popolare per Sviluppatori Node.js.
NW.js vs. Electron: cos’è Electron?
Electron è un progetto avviato da GitHub (attraverso Atom IDE) e inizialmente chiamato atom-shell. È stato introdotto a metà del 2013 con l’editor Atom di nuova generazione come una delle sue applicazioni principali, che fungeva da alternativa open source a soluzioni native proprietarie come XCode di Apple.
La piattaforma elettronica ha attirato rapidamente molta attenzione e, a marzo 2016, aveva più di 1.000 contributori su GitHub. Inoltre, uno degli obiettivi principali di Electron è quello di fornire una piattaforma di sviluppo per la creazione di app desktop con tecnologia web.
Riassumiamo queste informazioni di base in una tabella (NW.js vs Electron):
NW.JS | elettrone | |
Stelle di Github | 38.6k | 99,5k |
forchette | 3.9k | 13.1k |
Data di creazione | 2011 | 2013 |
Ultimo aggiornamento | 2021 NW.js v0.59.1 | 2021 Elettrone v16.0.5 |
Linguaggio quadro | C++ | C++, JS, Objective-C, Python |
Lingua di utilizzo – Indietro | JS, C++ | JS, C++ |
Linguaggio d’uso – Fronte | HTML, CSS, JS | HTML, CSS, JS |
Motore | Webkit, cromo | Cromo |
supporto del modulo npm/filato | sì | sì |
Dipendenze degli utenti | Nessuno | Nessuno |
Dipendenze degli sviluppatori | Node.js, NW.JS SDK | Node.js, Pacchetto Electron NPM |
Licenza | MIT | MIT |
Ora che sappiamo un po’ di ogni progetto, diamo un’occhiata ad alcune delle differenze principali.
NW.js vs. Electron: differenze chiave
NW.js vs. Electron: sviluppo
Una delle differenze più significative tra NW.js ed Electron è lo sviluppo. Con NW.js, puoi utilizzare i moduli Node.js direttamente nella tua app senza alcun lavoro aggiuntivo. Inoltre, questo lo rende una scelta popolare per gli sviluppatori web che cercano di creare app con moderne tecnologie web.
D’altra parte, Electron utilizza Node.js principalmente per la sua API e richiede agli sviluppatori di scrivere tutto il codice GUI in JavaScript o HTML/CSS. Le app scritte con Electron richiedono il processo principale che esegue l’app e un processo di rendering che viene caricato all’avvio dell’app. Questo può essere più complicato di NW.js, causando alcuni problemi di prestazioni. Pertanto, possiamo assegnare un tag vincitore per questa categoria al NW.js.
Vincitore: NW.js
NW.js vs. Electron: runtime
Un’altra differenza significativa tra i due progetti è nei loro ambienti di runtime. NW.js utilizza Chromium e un motore V8 come Node-WebKit inizialmente. Ciò significa che ottieni tutte le stesse funzionalità fornite con Chromium, ad esempio il supporto per HTML5, CSS3 e WebGL.
D’altra parte, Electron utilizza la propria build Chromium personalizzata chiamata “Desktop Chromium”. Fornisce le stesse funzionalità del normale Chromium ma aggiunge funzionalità extra specifiche per la piattaforma Electron.
Vincitore: pareggio
NW.js vs. Electron: caratteristiche
Il numero di funzioni supportate varia in modo significativo. Electron ha una base di utenti più ampia, più app di produzione e un gran numero di moduli userland disponibili su npm.
Electron, ad esempio, include il supporto integrato per gli aggiornamenti automatici e una miriade di strumenti che semplificano la creazione di programmi di installazione. NW.js, ad esempio, supporta più API Chrome.* per lo sviluppo di app Chrome.
Vincitore: Electron
NW.js vs. Electron: popolarità
A maggio 2021, NW.js ha oltre 38.000 stelle su GitHub, mentre Electron ha oltre 95.000 stelle.
Inoltre, Electron ha anche una comunità più attiva e ci sono più del doppio dei contributori su GitHub. Inoltre, Electron supporta un’ampia gamma di framework Web, librerie, API a livello hardware e il motore Chrome, oltre a Node.js.
La funzione Electron Fiddle consente agli sviluppatori di giocare con concetti e modelli, il che è fantastico per la sperimentazione. Electron è incentrato sulla semplificazione poiché elimina la necessità per gli sviluppatori di perdere tempo con l’imballaggio.
Vincitore: Electron
NW.js vs. Electron: prestazioni
Il motore Chromium utilizzato da NW.js ha un vantaggio significativo rispetto a Electron, almeno su alcuni dispositivi. Questo perché il motore JavaScript V8 utilizzato da Chromium è più veloce della sua controparte in Electron. Ad esempio, il V8 utilizzato in NW.js funziona due volte più velocemente su alcune architetture di CPU, portando a un significativo miglioramento delle prestazioni.
Inoltre, il consumo di memoria di Electron è superiore a quello di NW.js. Per questo motivo, anche NW.js ha prestazioni di sistema migliori.
Vincitore: NW.js
NW.js vs. Electron: voce dell’applicazione
Il punto di ingresso principale di un’applicazione in NW.js può essere una pagina Web HTML. NW.js aprirà quindi il punto di ingresso specificato in una finestra del browser.
Il punto di ingresso in Electron è sempre uno script JavaScript. Invece di fornire direttamente un URL, utilizzi l’API per aprire una finestra del browser e caricare un file HTML. È inoltre necessario ascoltare gli eventi della finestra per sapere quando chiudere l’applicazione.
Electron è più simile al runtime di Node.js. Poiché le API di Electron sono di livello inferiore, puoi utilizzarlo al posto di PhantomJS per il test del browser.
Vincitore: Electron
NW.js vs. Electron: supporto
NW.js ha caratteristiche native migliori come il file system e le connessioni di rete. Questo perché utilizza le stesse API utilizzate da Node.js. D’altra parte, Electron si basa su una libreria chiamata “Node-WebKit-Bridge” per fornire queste funzionalità. Il bridge node-WebKit è meno affidabile di WebKit e può essere difficile da usare in alcune situazioni.
Vincitore: NW.js
NW.js vs. Electron: sostenere i progetti
Electron è sponsorizzato da GitHub, il che significa che riceve più attenzione dal momento che stanno pagando gli sviluppatori per lavorarci. Inoltre, questo può essere sia un bene che un male a seconda delle tue preferenze.
Una fondazione indipendente che sostiene NW js gli conferisce maggiore indipendenza dai suoi sponsor, controllando il progetto. Questo potrebbe essere negativo per alcuni utenti che preferiscono un processo di sviluppo più centralizzato.
Vincitore: Electron
NW.js vs. Electron: applicazioni che utilizzano queste tecnologie
Finora, la maggior parte delle applicazioni create con NW.js ed Electron sono piccole utility o strumenti. Tuttavia, un numero crescente di applicazioni più significative viene costruito con queste tecnologie. Alcuni dei app e aziende che utilizzano NW.js sono:
Alcuni esempi degni di nota per Electron includono Slack, Atom, Microsoft Teams e Visual Studio Code. Queste applicazioni variano per dimensioni e complessità, ma condividono tutte una cosa: sono state tutte realizzate con moderne tecnologie web.
Vincitore: pareggio
Conclusione
Sia NW.js che Electron sono scelte eccellenti per la creazione di applicazioni desktop con le moderne tecnologie web. Inoltre, entrambi hanno i loro vantaggi e svantaggi, quindi devi decidere quale è giusto per il tuo progetto.
Inoltre, se vuoi un progetto piccolo e semplice, NW.js è probabilmente la scelta migliore. Se stai creando un’applicazione più grande o più complessa, Electron è un’opzione migliore.
Questo è tutto per il nostro confronto NW.js vs Electron. Quale pensi sia meglio NW.js o Electron?; lascia un commento qui sotto e facci sapere cosa ne pensi!