Hacker News new | ask | show | jobs
by Soremwar 1992 days ago
Fundamentally, Deno works way more like the language JavaScript is meant to be according to the vision of the ECMA committee (the ones who add features to the language).

Problem is that a lot of software was built upon areas where Node deviates from this standard (things like module system, language features, async management, etc) so there can't be a 1:1 translation in some cases

1 comments

Yeah. All I'm saying is that, practically speaking, it's a huge limitation. Imagine if Clojure couldn't leverage Java's ecosystem. Or, rather, it could but first you have to fork each package so you can change all the import statements and standard lib calls.

I do wonder if they couldn't have provided a shim for the Node system-APIs, and maybe even a compatibility-mode for Node's import style? Something where you could drop a Node project into Deno, complete with NPM dependencies, and immediately run it, and then gradually convert it to "idiomatic" Deno code with the proper (typed!) system APIs and URL-style imports. If they hope to eventually replace Node, "scrap the entire library ecosystem" doesn't feel like a very realistic roadmap.

Actually that is being worked on (std/node is a shim for Node libraries that aims to make Node ecosystem 100% usable from Deno) but the idea is to build software with Deno's mindset and features on top of it. Just look at this Vue compiler, it is really lightweight in comparison to what the actual Vue compiler actually takes up in Node.