Mne príde že ten Deno je len tak nazvyš, nič nové nepridalo,, snáď až na pár drobností, ktoré sa v Node dali vyriešiť PR (a že už obe prezentované relevantné výhody prišli do Node), BunJS mi príde ako niečo, čo má väčšiu šancu nahradiť Node, pretože API má takmer zhodné, výkon omnoho lepšiu, a teda aj keď taktiež neprináša veľa nového, tak aspoň nepridali bariéru kompatibility... Popravde za posledný mesiac (30 dní) som počul "Deno" 2x, ale "Node" počujem každých pár minút, ak teda riešim niečo s JS. Mi príde že nakoniec celý humbuk stíhne a počase, keď Node okopíruje to málo, tak bude vlastne Deno mŕtvy.
Když psal Ryan Dahl Node.js, psal ho proto, protože nebyl spokojený s aktuálním stavem tehdejších populárních backendových řešení. Můžete kouknout na jeho první přednášku o tom, co měl Node.js řešit, proč je async-first a tak dále.
Node.js sice žádné novátorské myšlenky neměl, ale určitě zpopularizoval a uvedl do mainstreamu přístupy, které byly v dané době spíše okrajové. Účel tedy splnil.
Když psal Ryan Dahl Deno, psal ho proto, protože nebyl spokojený se stavem aktuálních populárních backendových řešení, včetně designových chyb v Node.js, které sám způsobil (jako byl NPM bundling, security model, a jiné).
Pokud Deno nakoplo Node.js správným směrem, pak jedině dobře, smysl to mělo a snad ještě mít bude.
3. 5. 2023, 09:46 editováno autorem komentáře
Async first neznamená, že daný framework umožňuje async (a už to vůbec neznamená, pro kolegu vedle, že framework musí podporovat specifická klíčová slova jako je async/await a podobné, Node.js dělal původně async skrze callbacky, což souviselo s použitím v8 a konvencemi v browseru) , ale že je od základů na tomto principu postaven.
V další větě explicitně zmiňuji, že Node.js novátorský nebyl, ale pomohl zpopularizovat myšlenky, které se v následující dekádě více rozšířily do mainstreamu backendového vývoje.
Node.js rozhodně s asynchronním programováním jako první nepřišel, a taky jsem nic takového nikde nepsal. Ach jo.
3. 5. 2023, 11:35 editováno autorem komentáře
To je pravda. A já bych ještě dodal, že napsat z gruntu celý systém od píky je pro jednoho člověka nebo malý tým těžký úkol, tak proč nevyužít něco, co už za vás zdarma kohorty programátorů napsaly.
Z původní Dahlovy prezentace to vypadá spíše na obrácený postup, kdy potřeboval na svoje řešení naroubovat runtime, který si s jeho myšlenkami bude rozumět, a V8 se hodil.
3. 5. 2023, 12:03 editováno autorem komentáře
Ake konkretne rieislo node.js problemy v case svojho vzniku? Ako fakt ma to zaujima, lebo v mojej bubline bolo vcase vzniku velmi poplarne RoR z heslom, ze server je lacnejsi ako programator. Uznavam, ze nodejs bolo v istom type uloh rychlejsie (IO) ale to mi prislo len pre to, ze mainstrem bol extremne pomaly aj voci existujucim alternativam.
Co sa taky zdielania kodu medzi FE a BE (spominaneho inde), tak som si ten hype zazil, ale tento pristup sa akosi potichu vytratil do stratena a dnes ho uz s ust evanielizatorov JS nepocut.
RoR je příšerný kus softwaru a to říkám jako někdo, kdo ten jazyk má fakt rád -- nebo spíš právě proto. Ostatně to, co jste v Ruby musel v té době komplikovaně řešit přes EventMachine fungovalo v Node.js tak nějak per design. Hlavně to řešil. To I/O je totiž docela podstatná část spousty úloh.
Ostatně ani výkon nijak zásadní nebyl. Jednak byl v té době rychlý sám o sobě (když už mluvíme zrovna o Ruby, třeba to rychlostí zrovna nevynikalo) a druhak škálovat šlo už v té době snadno takže kdyžtak spustit dalších pět instancí bylo to poslední zajímavé. RoR jsou moloch. To, co činilo a činí Node.js problematickým je jednak jistá zastaralost API a druhak obtížná spravovatelnost stoprocentně asynchronní codebase kombinovaná s čistým JavaScriptem, který tomu fakt moc nepomáhal. Proto od něj spoustu projektů uteklo (čemuž se moc nedivím).
3. 5. 2023, 11:49 editováno autorem komentáře
Hej, ale ako hovorim, ine etablovane platformy riesili asynchrone IO riesli davno pred tym.
Zaujimave vystlenie mal k tomu David Grudl https://www.youtube.com/watch?v=rXjHCFz0UTI - ta cast o tom ako sa technologie viac menej opakuju a su poplarne pre to, ze su hipsterske (mizerna podpora a nic tam nefunguje) no kazdy nieco nove priniesol (PHP -> RoR -> Nodejs -> ?Rust?).
První verze node.js byla pecka. Já vím, že hodně lidí to prostě nechápe nebo to srovnává s tím, co je teď, ale v té době to bylo něco nového - v podstatě to bylo o tom použít JS na serveru co byl JIT zkompilovaný pomocí V8, což byla tehdy super inovativní VM pro javascript, takže výkon per thread byl neuvěřitelný, když se to porovnalo třeba s pythonem nebo nějakým jiným dynamicky typovaným jazykem. Navíc JSON je v JS first class citizen, takže napsat výkonné služby konzumující JSON a odpovídající JSON byla úplná trivialita.
Já webové věci teda moc teď nedělám, ale fakt si pamatuju ty overengineered řešení v Javě co používali milion XML definic, entity frameworků a dalších overengineered sraček - node.js byl v porovnání s tím naprosto úžasný lightweight produkt.
Dnes už jsou věci zase dál, a to je jen dobře, ale rozhodně nezapomenu na ten první zážitek s node.js a ten pocit, že něco zase může být jednoduché.