Deno 1.27
deno.com
deno.com
Also super excited about the lsp improvements. I believe we are the only project to have a webeditor that features lsp integration with deno in the web (to test, go on [3], New Script -> Next, it works really well). It's very pleasant to work with and make the webeditor experience match closely a local dev setup. We are super excited about the improvements and I am about to try tonight if we can have the inline hints work with monaco. As we are fully open-source, one can see how we are able to pull it off [4][5].
[1]: https://windmill.dev
[2]: https://github.com/windmill-labs/windmill
[4]: https://github.com/windmill-labs/windmill/blob/main/frontend...
[5]: https://github.com/windmill-labs/windmill/blob/main/lsp/pyls...
Npm packages already do too much, with package.json being used to run scripts that have permission to do nefarious tasks to relying on C libraries.
If I were to use Deno it would be with the understanding that I'd need to find dependencies that are generic and standard... Not expect everything from npm to work by default.
If I used either I'd specifically look for dependencies that are standard enough to not matter or
I think it's more that HN is warping reality on how ready they are for real work. We are shaping what is going to happen next in tech, and how quickly, by being eager and ready to give things a try and, in a mix of above average skill and curiosity, being able to make it work at a fairly sophisticated level, despite its current shortcomings.
(Genuine question. Not trolling)
Bun seems most promising to me, because it's chasing amazing performance _and_ widespread adoption.
Like Just-JS has amazing performance [1], but the author is "just" (a very amazing/talented) benchmark hacker and not necessarily trying/wanting to put in the effort to have "a node replacement" and/or extend his Techempower-specific optimizations into APIs/libraries that would affect the performance day-to-day business apps (which I don't blame him for).
Deno is kinda :shrug: b/c its original "great security" pitch doesn't really matter to anyone who runs in containers.
I think Deno has the strongest overall vision, and it's a vision I really want to see become the new default
Bun is compelling with its blistering pace and its ruthless dedication to performance, compatibility, and Just Works user experience. However, it's still very new and missing a lot of key features, and subjectively it just feels too "chaotic" for my tastes. They're designing it as they go, as fast as they can, but it feels like a wild ride. I'm not sure the creator even knows exactly where it'll end up, and in general it seems to prioritize "does everything you'd like it to right now" over "lay a new, better foundation for how the JS ecosystem works, unburdened by the historical baggage of Node"
Two very different mindsets; it'll be really interesting to see which one wins. Personally I'm rooting for Deno, but I think each of them is pushing the other one to be better.
Is this even possible anymore?
Deno made a valiant attempt, but with every release, the best received update seems to be the node/npm compatibility.
But new code written for Deno starts out on that better foundation without CommonJS, several different module-resolution algorithms, manual transpilation, competing linting and testing standards, etc etc. They just need to bridge the gap in the meantime, until Deno's own ecosystem gets more filled out. That's the dream anyway.
A simple example of this in my mind is the node: prefix added to CommonJS functions in NodeJS. This has some perf/caching advantages, which may have been the main driver, but also introducing a protocol prefix to module strings happens to improve extensibility/flexibility/compat across the ecosystem - there are transpilers that change e.g. import to require() or vice-versa, so extra context in module strings is helpful there. Deno's npm: prefix has a similar effect (it would be cool if this made it into Node someday - having control over module locator strategy at import granularity seems interesting; it would certainly make a lot of bundler hacks currently in use for things like CSS/etc. simpler)
Deno seems like to offer a better dev experience, and because it's created by Dahl it's the only one I take seriously as an alternative.
Excited to see how well Deno's security features pan out under broader, real-world usage.
if VS Code already supports TypeScript, what is missing?
My understanding is prior to this release the Deno LSP didn’t have visibility into types from packages originating from NPM.
Compatibility issues likely still exist, but I suspect the scope of work for an MVP substitution of Node for Deno is in the realm of possibility now when it wasn’t before.
``` import { Example } from "./example.js" // the actual file is example.ts ```
While in Deno you actually import the typescript file ``` import { Example } from "./example.ts" ```
That difference alone was enough to trip up the built-in typescript language tool and add friction.
Another thing is that Deno has a built in formatter / linter, you don't use a 3rd party tool like eslint, so having the ide just know how to do the linting and formatting is nice, the default typescript language plugin can't do that.
Also, Deno formats other file types including json, yaml and markdown.
...but you're even _more_ on your own w.r.t. bugs, compatibility issues, and the basic assumption that everything will be running inside Node, and therefore trivially able to access e.g. `npx` or various scripting+automation tools.
Your best bet today is to run Node in your development environment, then use the generated code in a Deno service/CLI wrapper/etc. It's clunky, but you can get there.
Just giving notice.
> direction has been removed from the collections module in favor of Direction.
> CSVStream has been removed from the encoding module in favor of CsvStream
Hmm I smell an interesting story here. If it's renaming for the sake of renaming then that's kinda dumb and breaks backwards compat for no reason, but presumably there's a better reason somewhere?
https://github.com/denoland/deno_std/pull/2400
The standard library is separate from the runtime. It wouldn't break backward compatibility if you were to update. For example, if you were importing RBTree and upgraded Deno to the latest release, it would keep working just fine. You would only really need to switch to using RedBlackTree instead if there was a change made to it that you wanted.
I think the only time you would need to update your standard module imports to be able to use newer versions of the Deno runtime would be if the standard module was depending on runtime APIs that have a breaking change.
You can find docs on using Deno LSP with other editors here: https://deno.land/manual/getting_started/setup_your_environm...
You should work on 1. your reading comprehension, and 2. making relevant comments to the discussion at hand.
JetBrains/WebStorm now utilises the Deno language server directly (the same one that the VSCode integration uses) but they control how features are expressed in their client and when they deliver them, something the core team can't directly control.
So for various reasons, VSCode ends up being the focus.
Now, it's gotta take a LOT for me to want to move. I'm already too productive with Linux, Nginx, MySQL, and Node.js w/ Express, and React on the front-end. I have little to no reason to try anything out.
On a similar note, while people are switching from Webpack to Turbopack, I'm kicking back writing actual product features with a near buildless process. Because I simply don't care. I use the "Run JSX Preprocessor" straight out of the docs as I work and commit the output.
Screwing around with switching back and forth and changing build configurations every few years reminds me of when back in the day people would supercustomize their desktop environments instead of just accepting them as they are.
Is anyone really working up a sweat over security theatre like passing in args to flip permissions flags?
Could you imagine how ridiculous that would sound in literally any other programming environment? That you can't trust your own software and its dependencies--that YOU built?
Yeah. You should just wait until 2035, then check again if Deno is relevant. If so, might be time to take another look.