Articles

Come nodo.js sta affrontando la sfida del nodo Deno

di Ryan Dahl.js, il runtime JavaScript open source, ha rilasciato la sua versione 15th la scorsa settimana. Ora nel suo 11 ° anno, Node.js è più popolare che mai, ma nel 2020 è emerso un concorrente parvenu. Deno, un runtime JavaScript open source rilasciato a maggio, è stato creato nientemeno che da Ryan Dahl, l’autore originale di Node.js. Anche peggio di avere un concorrente che conosce il tuo prodotto dentro e fuori, Deno è stato creato appositamente per risolvere ciò che Dahl percepiva come i punti deboli chiave di Node.js-inclusi problemi di sicurezza, uso di un sistema di repository centralizzato (npm)e ” utensili pesanti.”

Per scoprire come l’attuale generazione di Nodo.i manutentori di js hanno a che fare con il nuovo sfidante — e per estensione, quello che stanno facendo per affrontare le critiche di Dahl — Ho intervistato Bethany Griggs, un ingegnere software senior di Red Hat e un nodo.membro del Comitato Direttivo tecnico js. Griggs è stato coinvolto con il Nodo.progetto js dal 2016, principalmente con il Nodo.gruppo di lavoro di rilascio js.

Richard MacManus
Richard è senior editor presso il Nuovo Stack e scrive una colonna settimanale su ciò che è prossimo sul cloud native Internet. In precedenza ha fondato ReadWriteWeb nel 2003 e lo ha integrato in uno dei siti di notizie e analisi tecnologiche più influenti al mondo.

Nodo.js consente agli sviluppatori di eseguire codice JavaScript al di fuori di un browser web. Il suo scopo originale era quello di creare pagine web dinamiche su un server, prima di inviare al browser; il che significa che il codice JavaScript è stato eseguito sul lato server, piuttosto che sul client. Più in generale, Nodo.js è diventato l’impostazione predefinita per la programmazione web di backend (mentre per il frontend vengono utilizzati come React e Angular). L’idea è che gli sviluppatori possano utilizzare lo stesso linguaggio, JavaScript, sia per il backend che per il frontend.

Nodo.js è anche altamente scalabile e ha un modello di programmazione event-driven, entrambi i quali hanno reso una buona misura per le applicazioni native cloud.

“Nodo.js continua ad essere uno dei runtime leader per la creazione di microservizi nativi cloud e applicazioni back-end”, mi ha detto Griggs. Ha aggiunto che ” è anche popolare per i progetti IoT-uno dei miei esempi preferiti è la NASA che utilizza Node.js per monitorare i dati tuta spaziale.”

Tute spaziali a parte, Nodo.js non è più visto come la nuova cosa calda dello sviluppo JavaScript (Avanti.js, un framework di reazione frontend, ha forse preso quel mantello). E rispetto alla natura all’avanguardia di Deno — ad esempio, Deno è stato scritto nel nuovo linguaggio di programmazione alla moda, Rust — the Node.il progetto js segue un percorso di sviluppo relativamente conservativo al giorno d’oggi. Quindi non sorprende che la versione 15 di Node.js è un aggiornamento incrementale.

Griggs ha citato “lanciare di default su rifiuti non gestiti” come l’aggiornamento più significativo nella v15. Ciò significa che gli sviluppatori possono ora ottenere ” feedback precoce che stanno omettendo la gestione di un errore nella loro applicazione.”Un prezioso aggiornamento tecnico, senza dubbio, ma non in grado di generare discussione entusiasta su tech Twitter.

Rispondendo alle critiche di Ryan Dahl

Quello di cui ero più curioso era se il Nodo.il team di progetto js ha intrapreso nuovi sviluppi, o correzioni, per affrontare alcune delle preoccupazioni che Ryan Dahl ha sollevato negli ultimi due anni?

Un paio di anni fa, Dahl ha fatto una presentazione sui suoi rimpianti dopo aver creato Node.js. Uno dei principali è che non ha reso il runtime sicuro come avrebbe potuto – qualcosa che ha affrontato durante la creazione di Deno, che è promosso come “sicuro per impostazione predefinita.”L’approccio di Deno alla sicurezza consiste nel mettere binari di sicurezza attorno all’accesso ai dati; come descritto nel suo manuale,” Deno richiede autorizzazioni esplicite per l’accesso a file, rete e ambiente.”

Ryan Dahl alla JSConf EU 2018.

Diplomaticamente, Griggs mi ha detto quel Nodo.js “prenderà ispirazione da” Deno su questo e altri problemi. Tuttavia, ha detto che il Nodo.il progetto js ” ha avuto una storia di discussioni sull’applicazione della sicurezza e sulla limitazione dell’accesso alle API da prima dell’annuncio di Deno.”Ha indicato un paio di” funzionalità sperimentali” per la sicurezza (esempio 1, esempio 2).

Inoltre, Griggs non è convinto che l’approccio safety-first di Deno all’accesso sia giusto per Node.js. “Per le applicazioni pratiche”, ha affermato, ” dovresti rapidamente tornare a concedere l’accesso a molte API, quindi il valore netto rispetto alla complessità sarebbe basso.”

Anche se c’è interesse tra il Nodo.js project team nella sperimentazione di funzionalità di sicurezza più forti, secondo Griggs ” non c’è stato un caso convincente per adottare tutti gli stessi compromessi di Deno.”

Per quanto riguarda le critiche di Dahl su npm come ecosistema chiuso per i moduli, Griggs non vede alcun motivo per il nodo.js per cambiarlo.

“Per quanto riguarda il modo in cui i moduli sono gestiti, l’ecosistema dei moduli è stato una grande parte del successo di Node.js. Mentre sono in corso discussioni sull’integrazione dei client — i registri che servono i moduli — l’obiettivo principale è stato quello di aggiungere il supporto per i moduli ES6, piuttosto che cambiare il modo in cui vengono gestiti.”

Invece di utilizzare npm, Deno ha scelto di utilizzare moduli a cui si fa riferimento come URL o percorsi di file.

JavaScript lato server ancora forte

Con l’attuale popolarità dei framework JavaScript come Next.js e Gatsby, insieme all’ascesa di Jamstack e al suo approccio di generazione di siti statici, ho chiesto a Griggs se ciò ha influito sui casi d’uso per JavaScript lato server?

” Potrebbe esserci una riduzione nell’uso di cose come i motori di template per il rendering lato server”, ha detto, “ma Node.js è ancora usato pesantemente per costruire i microservizi che supportano le pagine statiche che possono essere distribuite utilizzando approcci come Jamstack. Nodo.js continua anche ad essere molto utilizzato negli strumenti che compongono le pipeline di sviluppo per JavaScript lato client.”

Il futuro del Nodo.js e Deno

Quindi quali sono le prospettive per il nodo.js? Nel post di annuncio sulla versione 15, Griggs ha scritto che dopo aver celebrato il decimo anniversario di Node.js l’anno scorso, ” il progetto ha dato il via i prossimi 10 anni di nodo.js sforzo. “

Ho chiesto a Griggs quali tipi di iniziative i membri del progetto stanno cercando di implementare nel prossimo decennio?

” Finora abbiamo definito le nostre priorità come esperienza di sviluppo, stabilità, qualità operative, Nodo.js maintainer esperienza, e up-to-date tecnologia e API,” ha risposto.

Questi sono attualmente descritti in un documento GitHub intitolato Values and Priorities. La sicurezza è menzionata una volta, come sottocategoria di” Qualità operative”, e afferma semplicemente: “Affrontare le vulnerabilità della sicurezza in modo responsabile.”

Non sembra un obiettivo di alto livello per il prossimo decennio, soprattutto rispetto all’obiettivo più ambizioso di Deno di cercare di evitare le vulnerabilità in primo luogo.

Ma dal Nodo.js è un progetto stabile e relativamente lungo, e si rivolge ad alcuni fornitori di software aziendali molto grandi (come il datore di lavoro di Grigg, Red Hat), non si può incolpare i manutentori per essere conservatori. Anche se lascia un’apertura per gli altri a pensare più in grande e più audace sul futuro del JavaScript lato server-che è esattamente ciò che Dahl e il suo progetto Deno stanno facendo.

Red Hat è uno sponsor del Nuovo Stack.

Immagine caratteristica via .