Articles

How Node.js řeší výzvu uzlu Deno

Ryana Dahla.JS, open source JavaScript runtime, vydala svou 15. verzi minulý týden. Nyní ve svém 11. ročníku, uzel.js je stejně populární jako vždy, ale v roce 2020 se objevil povýšený konkurent. Denominovaných, open source JavaScript runtime propuštěn v Květnu, byl vytvořen nikdo jiný než Ryan Dahl — původní autor Uzlu.js. Ještě horší než mít konkurenta, který zná váš produkt naruby, byl Deno vytvořen speciálně pro opravu toho, co Dahl vnímal jako klíčové slabiny Node.js-včetně bezpečnostních otázek, použití centralizovaného úložného systému (npm) a “ těžkých nástrojů.“

Chcete-li zjistit, jak aktuální generace uzlu.js správci co do činění s novým challenger — a potažmo, co dělají na adresu Dahl kritiku — jsem rozhovor Bethany Griggs, Senior Software Engineer v Red Hat a Uzel.člen technického řídícího výboru js. Griggs byl zapojen do uzlu.projekt js od roku 2016, především s uzlem.pracovní skupina pro uvolnění js.

Richard Macmanusovi
Richard je senior editor v Novém Zásobníku a píše týdenní sloupek o tom, co je další na cloud nativní internet. Předtím založil ReadWriteWeb v roce 2003 a postavil jej do jednoho z nejvlivnějších technologických zpravodajských a analytických webů na světě.

uzel.js umožňuje vývojářům spouštět kód JavaScript mimo webový prohlížeč. Jeho původním účelem bylo vytvořit dynamické webové stránky na serveru, před odesláním do prohlížeče, což znamená, že JavaScript kód vykonán na straně serveru, nikoli na klientovi. Obecněji, uzel.js se stal výchozím pro programování backend webu (zatímco jako React a Angular se používají pro frontend). Myšlenka je, že vývojáři mohou používat stejný jazyk, JavaScript, pro backend i frontend.

uzel.js je také vysoce škálovatelný a má programovací model založený na událostech, z nichž oba se dobře hodí pro cloudové nativní aplikace.

„uzel.js je i nadále jednou z předních dob pro vytváření cloudových nativních mikroservisů a backendových aplikací,“ řekl mi Griggs. Dodala, že “ je také populární pro projekty IoT — jedním z mých oblíbených příkladů je NASA pomocí Node.js pro sledování dat skafandru.“

skafandry stranou, uzel.js již není považován za horkou novou věc vývoje JavaScriptu (další .js, frontend React framework, možná vzal ten plášť). A ve srovnání se špičkovou povahou Deno – například, Deno bylo napsáno v moderním novém programovacím jazyce, Rust-uzel.projekt js sleduje v dnešní době poměrně konzervativní vývojovou cestu. Není tedy žádným překvapením, že verze 15 uzlu.js je přírůstková aktualizace.

Griggs citoval „házení ve výchozím nastavení na neošetřené odmítnutí“ jako nejvýznamnější aktualizaci v v15. To znamená, že vývojáři nyní mohou získat “ včasnou zpětnou vazbu, že opomíjejí zpracování chyby ve své aplikaci.“Cenná technická aktualizace, bezpochyby, ale není pravděpodobné, že by vyvolala nadšenou diskusi o tech Twitteru.

reakce na kritiku Ryana Dahla

co jsem byl více zvědavý, bylo, zda uzel.projektový tým js provedl jakýkoli nový vývoj, nebo opravy, řešit některé obavy, které Ryan Dahl vznesl za posledních pár let?

před pár lety udělal Dahl prezentaci o svých lítostech po vytvoření uzlu.js. Hlavní bylo, že neudělal runtime tak bezpečný, jak mohl mít — něco, co řešil při vytváření Deno, který je ve výchozím nastavení propagován jako „Bezpečný“.“Denominovaných je přístup k bezpečnosti je dát bezpečnostní zábradlí kolem přístupu k datům; jak je popsáno v jeho manuálu, „Denominovaných vyžaduje explicitní oprávnění pro soubor, síť, prostředí a přístup.“

Ryan Dahl at JSConf EU 2018.

diplomaticky mi Griggs řekl, že uzel.js se v této a dalších otázkách“ inspiruje “ Deno. Nicméně, ona řekla, že uzel.js project “ má za sebou historii diskusí o prosazování zabezpečení a omezení přístupu k API z doby, než bylo oznámeno Deno.“Poukázala na několik“ experimentálních funkcí “ pro bezpečnost (příklad 1, příklad 2).

Griggs také není přesvědčen, že bezpečnostní přístup Deno k přístupu je pro Node správný.js. „Pro praktické aplikace,“ řekla, „ty by rychle klesat zpět k udělení přístupu k mnoha Api, takže čistá hodnota versus složitost by byla nízká.“

i když je mezi uzlem zájem.projektový tým js při experimentování se silnějšími bezpečnostními prvky, podle Griggse “ nebyl přesvědčivý případ, aby se přijaly všechny stejné kompromisy jako Deno.“

Pokud jde o Dahlovu kritiku npm jako uzavřeného ekosystému pro moduly, Griggs nevidí důvod pro Node.js to změnit.

“ vzhledem k tomu, jak jsou moduly spravovány, byl modulový ekosystém velkou součástí úspěchu uzlu.js. Zatímco probíhají diskuse o integraci klientů-registrů, které slouží modulům—, hlavní důraz byl kladen na přidání podpory pro moduly ES6, spíše než na změnu způsobu jejich správy.“

namísto použití npm se Deno rozhodlo použít moduly odkazované jako adresy URL nebo cesty k souborům.

JavaScript na straně serveru stále silný

se současnou popularitou javascriptových rámců, jako je Next.js a Gatsby, spolu se vzestupem Jamstacku a jeho statickým přístupem ke generování stránek, zeptal jsem se Griggse, zda to ovlivnilo případy použití JavaScriptu na straně serveru?

„může dojít ke snížení používání věcí, jako jsou šablonové motory pro vykreslování na straně serveru, „řekla,“ ale uzel.js se stále používá těžce budovat microservices, že zpět statické stránky, které mohou být nasazeny pomocí přístupy, jako Jamstack. Uzel.js je také nadále silně používán v nástrojích, které tvoří vývojové potrubí pro JavaScript na straně klienta.“

Futures uzlu.js a Deno

Takže co bude dál pro uzel.js? V oznámení o verzi 15, Griggs to napsal po oslavě desátého výročí uzlu.js v loňském roce, “ projekt odstartoval další 10 let uzlu.js úsilí. „

zeptal jsem se Griggse, jaké iniciativy chtějí členové projektu realizovat v příštím desetiletí?

“ zatím jsme definovali naše priority jako zkušenosti vývojářů, stabilita, provozní vlastnosti, uzel.zkušenosti Správce js, a aktuální technologie a API, “ odpověděla.

ty jsou v současné době nastíněny v dokumentu GitHub nazvaném hodnoty a priority. Bezpečnost je jednou zmíněna jako podkategorie „provozních kvalit“ a jednoduše uvádí: „odpovědné řešení bezpečnostních chyb.“

nezdá se to jako cíl s vysokým barem pro příští desetiletí, zejména ve srovnání s ambicióznějším cílem Dena pokusit se vyhnout zranitelnostem na prvním místě.

ale od uzlu.js je stabilní a relativně dlouho-běžící projekt, a zajišťuje, aby některé velmi velkých dodavatelů podnikového softwaru (jako Grigg zaměstnavatele, Red Hat), nemůžete vinit správci za to, že konzervativní. I když to znamená opustit otvor pro ostatní, že větší a odvážnější o budoucnosti server-side JavaScript — což je přesně to, co Dahl a jeho Denominovaných projektu se daří.

Red Hat je sponzorem nového zásobníku.

funkce obrázek přes .