Articles

Hvordan Node.js Adresserer Utfordringen Til Ryan Dahls Deno

Node.js, Open source JavaScript runtime, utgitt sin 15. versjon i forrige uke. Nå i sitt 11. år, Node.js er like populær som noen gang, men i 2020 en oppkomling konkurrent har dukket opp. Deno, en Åpen kildekode JavaScript runtime utgitt I Mai, ble skapt av Ingen ringere Enn Ryan Dahl-den opprinnelige forfatteren Av Node.js. Enda verre enn å ha en konkurrent som kjenner produktet innsiden ut, Deno ble opprettet spesielt for å fikse Hva Dahl oppfattet som de viktigste svakhetene I Node.js-inkludert sikkerhetsproblemer, bruk av et sentralisert depotsystem (npm) og » heavy-handed tooling.»

for å finne ut hvordan dagens Generasjon Av Node.js-vedlikeholdere har å gjøre med den nye challenger-og i tillegg, hva de gjør For Å takle Dahls kritikk-jeg intervjuet Bethany Griggs, Senior Programvareingeniør Ved Red Hat og A Node.Js Teknisk Styringsgruppe Medlem. Griggs har vært involvert i Noden.js prosjekt siden 2016, primært Med Noden.Js Frigjør Arbeidsgruppe.

Richard MacManus
Richard er seniorredaktør på den nye Stakken og skriver en ukentlig spalte om hva som skjer videre på nettskyen. Tidligere grunnla Han ReadWriteWeb i 2003 og bygget det inn i en av verdens mest innflytelsesrike teknologi nyheter og analyse nettsteder.

Node.js lar utviklere å kjøre JavaScript-kode utenfor en nettleser. Dens opprinnelige formål var å skape dynamiske nettsider på en server, før de ble sendt til nettleseren; noe som betyr At JavaScript-koden ble utført på serversiden, i stedet for på klienten. Mer generelt, Node.js har blitt standard for backend web programmering (mens slike Som React og Angular brukes for frontend). Tanken er at utviklere kan bruke samme språk, JavaScript, for både backend og frontend.

Node.js er også svært skalerbar og har en hendelsesdrevet programmeringsmodell, som begge har gjort den til en god passform for skybaserte applikasjoner.

«Node.js fortsetter å være en av de ledende kjøretidene for å bygge cloud native microservices og backend-applikasjoner, » Fortalte Griggs meg. Hun la til at » det er også populært for IoT-prosjekter — ET av mine favoritteksempler ER NASA ved Hjelp Av Node.js å overvåke space suit data.»

Mellomrom til side, Node.js er ikke lenger sett på som den varme nye Tingen Av JavaScript-utvikling (Neste.js, en frontend React framework, har kanskje tatt den mantelen). Og i forhold Til denos banebrytende natur-For eksempel ble Deno skrevet i det trendy nye programmeringsspråket, Rust-Noden.js prosjektet følger en relativt konservativ utvikling banen i dag. Så det er ingen overraskelse at Versjon 15 Av Node.js er en inkrementell oppgradering.

Griggs sitert «kaster som standard på uhåndterte avslag» som den viktigste oppdateringen i v15. Dette betyr at utviklere nå kan få » tidlig tilbakemelding om at de utelater håndtering av en feil i søknaden deres.»En verdifull teknisk oppdatering, uten tvil, men ikke sannsynlig å generere entusiastisk diskusjon om tech Twitter.

Å Svare På Ryan Dahls Kritikk

det jeg var mer nysgjerrig på, var Om Noden.js project team har foretatt noen nye utbygginger, eller fikser, for å løse noen av bekymringene Ryan Dahl har reist de siste par årene?

For noen år siden gjorde Dahl en presentasjon om hans angrer etter å ha opprettet Node.js. En stor var at han ikke gjorde kjøretiden så sikker som han kunne ha-noe han adresserte når han opprettet Deno, som fremmes som «sikker som standard.»Denos tilnærming til sikkerhet er å sette sikkerhetsskinner rundt datatilgang; som beskrevet i håndboken,» Krever Deno eksplisitte tillatelser for fil -, nettverk-og miljøtilgang.»

Ryan Dahl på JSConf EU 2018.

Diplomatisk, Griggs fortalte meg At Noden.js vil «ta inspirasjon fra» Deno på dette og andre problemer. Men hun sa At Noden.js project » har hatt en historie med diskusjoner rundt sikkerhetshåndhevelse og begrensning av tilgang til Apier fra før Deno ble annonsert.»Hun pekte på et par» eksperimentelle funksjoner » for sikkerhet(eksempel 1, eksempel 2).Griggs er heller Ikke overbevist om At Denos sikkerhets-første tilnærming til tilgang er riktig for Node.js. «For praktiske applikasjoner, «sa hun,» må du raskt falle tilbake til å gi tilgang til mange Apier, slik at nettoverdien mot kompleksiteten vil være lav.»

Selv om det er interesse blant Noden.js prosjektteam i å eksperimentere med sterkere sikkerhetsfunksjoner, ifølge Griggs » det har ikke vært en overbevisende sak å vedta alle de samme avveininger som Deno.»

Når Det Gjelder Dahls kritikk av npm som et lukket økosystem for moduler, Ser Griggs ingen grunn til Node.js for å endre det.

«med hensyn til hvordan moduler styres, har moduløkosystemet vært en stor del av Suksessen Til Node.js. Mens det pågår diskusjoner rundt integrering av klienter-registrene som betjener moduler – har hovedfokuset vært å legge til støtte FOR ES6-moduler, i stedet for å endre hvordan DE administreres.»

I Stedet for å bruke npm, har Deno valgt å bruke moduler referert Til Som Nettadresser eller filbaner.

Server-Side JavaScript Still Going Strong

Med Den nåværende populariteten Til JavaScript-rammer som Next.Js Og Gatsby, sammen med fremveksten Av Jamstack og dens statisk nettsted generasjon tilnærming, jeg spurte Griggs om det har påvirket brukstilfellene For Server-Side JavaScript?»det kan være en reduksjon i bruken av ting som templerende motorer for server-side gjengivelse,» sa hun, «Men Node.js brukes fortsatt tungt til å bygge mikrotjenestene som støtter de statiske sidene som kan distribueres ved hjelp av tilnærminger som Jamstack. Node.js fortsetter også å bli tungt brukt i verktøyene som utgjør utviklingsrørledninger for Klientsiden JavaScript.»

Futures Av Node.js og Deno

Så hva er neste For Node.js? I annonseringsposten om versjon 15 skrev Griggs at Etter å ha feiret Tiårsjubileet For Node.js i fjor, «prosjektet har sparket Av De Neste 10 Årene Av Node.js innsats. «

jeg spurte Griggs hva slags tiltak prosjektmedlemmene er ute etter å gjennomføre i løpet av det neste tiåret?

«Så langt har vi definert våre prioriteringer som utvikler erfaring, stabilitet, operasjonelle kvaliteter, Node.js maintainer experience, og oppdatert teknologi og Api-Er, » svarte hun.

disse er for tiden skissert I Et GitHub-dokument med Tittelen Verdier og Prioriteringer. Sikkerhet er nevnt en gang, som en underkategori av «Operasjonelle Kvaliteter», og sier ganske enkelt: «Adressering av sikkerhetsproblemer på en ansvarlig måte.»Det virker ikke som et høyt mål for det neste tiåret, spesielt i forhold Til Denos mer ambisiøse mål om å prøve å unngå sårbarheter i utgangspunktet.

Men siden Node.js er et stabilt og relativt langvarig prosjekt, og henvender seg til noen svært store bedriftsprogramvareleverandører (som Griggs arbeidsgiver, Red Hat), du kan ikke klandre vedlikeholderne for å være konservative. Selv om Det gir en åpning for andre å tenke større og dristigere om fremtiden for Server-Side JavaScript — som Er akkurat Hva Dahl og Hans deno-prosjekt gjør.

Red Hat er en sponsor av Den Nye Stabelen.

Funksjonen bilde via.