5 ms·
Half-OT: Anyone got experience with switching from Node.js to Deno? What's better with Deno? What's still worse?
by k__ 4y ago
Half-OT:
Anyone got experience with switching from Node.js to Deno?
What's better with Deno? What's still worse?
- lucasyvas 4y agoEcosystem is still worse, which is IMO all that matters at this point. ts-node is good enough to stick to Node for now if you want TypeScript. I don't think the rest of Deno is that compelling, although I would probably switch to Deno once its Node compat is awesome since it is a more compelete package out of the box than Node is. Deno's battle is that it is an incremental improvement, and competing JS runtimes is quickly become the new JS web framework meme alternative (Bun, Boa, Node, Deno)
- k__ 4y ago"it is a more compelete package out of the box than Node" How come?
- lucasyvas 4y agoDeno fmt, testing, capabilities, standalone binaries, built-in TS. Just a bit more modern and nice and saves a lot of setup you'd have to do with Node.
- nicoburns 4y agoI think esbuild is simpler than ts-node. We simply compile everything from TS to JS with esbuild every time we launch node (it takes less than 0.1 seconds)
- lucasyvas 4y agoIt very well could be - I suppose that's more evidence to the point that working with Node is very doable these days even without built-in support for many tools.
- toastercat 4y agoSee: https://github.com/lukeed/tsm https://github.com/lukeed/tsm which is built on esbuild.
- nicoburns 4y agoAh that looks cool. I'll definitely check that out at some point. Although our current node <-> esbuild integration is a ~6 line bash script, so there's not much pressure to change to another solution.
- mirekrusin 4y ago#! /usr/bin/env node -r @swc-node/register ...shebang is better than ts-node
- Rapzid 4y agots-node is great. Proper ESM support landed over the summer. All my new projects at work are module type now. I use ts-node with the optional SWC compiler which works great with pretty darn fast startup times. SWC can handle TypeScript experimental decorators including emitting metadata, so not losing out on anything with it ATM.
- labarilem 4y ago+1 for the SWC compiler, been using it for some time and I love it.
- simlevesque 4y ago> Ecosystem is still worse, which is IMO all that matters at this point. Matters for what ? Doing every type of app ? Yeah, that's blocker. But it doesn't really matter. Every language ecosystem that succeeds starts off lacking things. Personally I prefer starting with it early and be part of that ecosystem.
- Serenacula 4y agoI still have nightmarish configuration problems when using ts-node. Deno has definitely made that easier for my personal projects at least.
- themerone 4y agoI haven't switched yet, but I would say everything is better except package availability. For example, there is no package to connect to an SQL Server database. Node/NPM compatibility is experimental, as it improves, this lack of Deno native packages should become less of an issue.
- mirekrusin 4y agoWhen they say npm compatiblity, they mean non-native npms - native npms will never be supported.
- dsherret 4y agoNode API will be supported sometime soon https://github.com/denoland/deno/pull/13633 https://github.com/denoland/deno/pull/13633
- mirekrusin 4y agoThanks, I stand corrected, one ambitious pr!
- frou_dh 4y agoDeno is very nice for writing a script that uses a dependency, without the ceremony of setting up or generating a pseudo-"project". One file with your code in it.
- toastercat 4y agoWorse: Ecosystem Better: Seamless TypeScript support without having to deal with 3rd party packages or tsconfigs. A standard library modeled after Go's that is a WIP, but solid overall. Having browser APIs in the runtime is great, removes the mental context switch between browser/node. Formatter built in to the binary. YMMV, but I prefer the url imports and lack of package.json. I can't speak from a professional standpoint of migrating a project from Node to Deno; honestly, I don't think it's worth doing that (yet). But Deno is far more enjoyable to me as a hobbyist programmer and working on solo projects. I recently deployed an app backend using just the std and the Deno port of postgres.js[0] to Deno Deploy and it was a breeze. I also think it's a great starting point for anyone looking to learn JavaScript. [0] https://github.com/porsager/postgres https://github.com/porsager/postgres
- lucis 4y agoDeno Deploy[1] is amazing, the deploy time is unbelievably fast. I'm doing regular HTTP stuff, so haven't been suffering with lack of libraries. Most things work just fine. https://deno.com/deploy https://deno.com/deploy
- akmittal 4y agoWhats better: 1. Standard library: Deno has so much better standard library, support for web standards, promises instead of callback, and need to reach out to third party modules lot less 2. Performance: Deno is focusing a lot on performance and it faster than node 3. Package management: No more gigabytes of node_modules, They just have URLs which are simpler to use 4. Versioned std library:node's standard library is packaged but for deno you can use different std library than deno version. Whats worse: 1. Ecosystem: There are lot less packages for deno but Deno team is working on npm packages support. So all/most npm packages will work in deno 2. Deployment target: Deno has deno deploy but that pretty much it.
- nyadesu 4y ago> What's better with Deno? Scripting, tooling/IDE support (webstorm support is pretty good), documentation and standardization, infrastructure as code > What's still worse? Node/NPM compatibility is still hit or miss depending on the library you're trying to use, that's something Bun is trying to improve over Deno. Also, typescript types feel very hacky and I feel that's something very important as one of Deno's biggest selling points is typescript first-class support, definitely typed is doing most of the heavy lifting but things aren't perfect.
- Mikeb85 4y agoEverything is better except the amount of packages available for it.