| ▲ | binlog 8 hours ago |
| This is a wild detail to just bury at the bottom. So many companies went all-in on Deno in recent years. Some even did major migrations off Node.js. Sucks for them I guess, but that's always the risk in chasing the shiny new thing over sticking to the old and dependable. |
|
| ▲ | redox99 6 hours ago | parent | next [-] |
| You can migrate off deno in a single day. It's not a big deal. |
| |
| ▲ | matesz 6 hours ago | parent | next [-] | | Exactly that. I am really surprised by the amount of comments with this huge sentiment and doom mongering. These days it’s really not a big deal. Million lines of deno based ts is not a problem because pretty much any functionality provided to deno is available for node as well. You probably can migrate off much of the external deps without much hassle. You can even migrate to different language ecosystem altogether like others have mentioned in comments. | | |
| ▲ | flohofwoe 5 hours ago | parent | next [-] | | > ...pretty much any functionality provided to deno is available for node as well. Unfortunately Node still can't do something like this out of the box (AFAIK at least): import { Bla } from "npm:bla@^5";
Such direct imports are basically the killer feature of Deno for simple standalone tooling scripts in otherwise non-JS/TS projects, e.g. it made TS a perfect replacement for Python even without a "batteries included" standard library.Deno also has a builtin TS type checker, linter, formatter, test runner with coverage support, package manager, language server etc etc... In node these are all separate (and often 3rd-party) tools. | | |
| ▲ | mahboi 3 hours ago | parent | next [-] | | This doesn't seem like a big deal. Don't you just npm install whatever you need and then change the import names? | |
| ▲ | michaelmior an hour ago | parent | prev | next [-] | | FWIW, almost this exact syntax for imports (without the `npm:` prefix) is supported for standalone scripts with Bun. | |
| ▲ | ecares 3 hours ago | parent | prev [-] | | this one is actually a bad pattern to avoid. |
| |
| ▲ | nimchimpsky an hour ago | parent | prev [-] | | [dead] |
| |
| ▲ | anvuong 21 minutes ago | parent | prev | next [-] | | It's one of those things that the technical aspect is simple but the paperwork dehumanizes me. Just a couple more bullshit engineering design documents to generate | |
| ▲ | beanjuiceII 3 hours ago | parent | prev | next [-] | | what other runtime has runtime security features? | |
| ▲ | notnullorvoid 3 hours ago | parent | prev | next [-] | | Node only has experimental permissions support (making it not as good for local scripts), and no WebGPU (though you can import dawn wrapper). Deno desktop is way ahead of anything available for Node. | |
| ▲ | hodder 6 hours ago | parent | prev | next [-] | | Exactly. Probably an hour if you just tell your model of choice to do it for you and implement a logical testing framework. | |
| ▲ | echelon 5 hours ago | parent | prev [-] | | And this is why deno is exiting. There's no business here anymore. |
|
|
| ▲ | fg137 7 hours ago | parent | prev | next [-] |
| Exactly why any company that cares about long term maintenance should stick with Node.js except in cases that justify alternative runtime. I wouldn't be surprised if Bun is abandoned at some point as well. (Which is why I am happy to see new runtimes but never care enough to seriously use or adopt them.) |
| |
| ▲ | sionisrecur 6 hours ago | parent [-] | | As long as the competition forced Node to become better then it's all good. | | |
| ▲ | shimman 5 hours ago | parent [-] | | Communities aren't always in competition with one another. | | |
| ▲ | fhn 3 hours ago | parent [-] | | Yes they are. If opensource product A does not have better features than competing opensource product B, uses move to the better product A and pretty soon, almost nobody will use product B. Take BSD vs Linux for example. We get "we've migrated to BSD" or "we've migrated to Linux" posts all the time and arguments for one or the other. Is there a winner and loser? Yes. Larger communities, more developers, more corporate sponsors, more contributions, etc. Certainly looks like competition to me. |
|
|
|
|
| ▲ | duskdozer 5 hours ago | parent | prev | next [-] |
| I guess "joining" was the key word here. But I'm not particularly surprised now that I see it meant acquihire. |
|
| ▲ | kuekacang 8 hours ago | parent | prev | next [-] |
| I went all-in with bun. Did I bet wrong? |
| |
| ▲ | user43928 7 hours ago | parent | next [-] | | What did it get you? For my projects, I am used to maintaining package manager configuration, bundlers, linters etc. So I never had much interest in looking into benefits of Deno or bun. | | |
| ▲ | nateb2022 7 hours ago | parent | next [-] | | As a former bun user, speed. However I now work with software that requires PQC resistance and node's native ML-KEM and ML-DSA abilities made me switch back. Also I'm not particularly an Anthropic fan so that was also a separate nail in its coffin for me. | | |
| ▲ | btown 3 hours ago | parent [-] | | Now I'm fascinated why you've chosen the node/npm ecosystem for something with such high security requirements. Are you doing anything special to deeply pin dependencies, etc.? Finding the right balance of "being responsive to bugfixes, some of which may patch disclosed zero-days" and "not allowing a compromised package to be installed" is tough, these days. | | |
| ▲ | nateb2022 3 hours ago | parent [-] | | npm has supported min-release-age since Februrary, both that and pinned dependencies are stuff I think everyone should be doing. wrt sensitive environments, I can't say too much about our internal processes but we have an audited private registry among other things. for containers, Iron Bank provides a free and publicly accessible baseline https://p1.dso.mil/iron-bank to build on top of. |
|
| |
| ▲ | threecheese 6 hours ago | parent | prev | next [-] | | As a non-js developer, Bun compiles my ts code to local executables nicely. Allows me to experiment with the new diversity of ts frameworks and distribute the binaries (hobby scope). | | |
| ▲ | galaxyLogic 2 hours ago | parent [-] | | I'm using Vercel PKG to compile my JS code to executables "nicely". But PKG is not supported by anyone any more (?) and it has an upper limit on the version of Node.js base-image it will support. If Bun supports compiling executables nicely I hope that feature somehow stays alive and is migrated to other runtimes. Or maybe it can become a standalone tool for exe-compiling? |
| |
| ▲ | zamadatix 7 hours ago | parent | prev [-] | | I mean I used to do a lot of things I'm glad I don't have to anymore. I'm not a big fan of doing repetitive work just because I understand how to. Node at least picked up --run, TS stripping support, .env loading, watch mode, and sqlite (plus some other things I'm probably forgetting) since Deno started so at least theres that. | | |
| ▲ | user43928 6 hours ago | parent [-] | | I also don't like repetitive work, but I think it can be beneficial to understand how the tools you use work, and bun/Deno seem to abstract much of it away. Random example: I've worked with many frontend developers who seemed to believe listing dependencies in package.json in devDependencies instead of 'dependencies' controls what ends up in the production bundle. I'm under the impression few understand that this is only a cosmetic distinction unless you use the package manager's --omit=dev or --production flags during install. What is included in the production bundle is of course determined by the bundler's dependency-graph reachability from the entry point. For people who never configured these tools themselves, it's probably difficult to understand how the modern web stack works. However, nowadays you can probably have AI explain it to you well enough while it fixes the issues. | | |
| ▲ | KronisLV 6 hours ago | parent | next [-] | | Silly drive by take: > I've worked with many frontend developers who seemed to believe listing dependencies in package.json in devDependencies instead of 'dependencies' controls what ends up in the production bundle. If so many believe that it’s how it should work, maybe it just should work that way. Principle of least surprise and all that. | | |
| ▲ | 8n4vidtmkvmk 5 hours ago | parent [-] | | You can and probably should set up your production builds that way but it's not automatic. It also gets messy if you're building 2 or 3 services simultaneously out of the same node_modules dir. E.g frontend, backend, shared, scripts... | | |
| ▲ | user43928 5 hours ago | parent [-] | | How would you set that up? Like say you installed only the production dependencies, then you'd be missing the build tools, bundler, etc. One idea would be to use hooks of your bundler to enforce that each module resolved during the production build is declared in the regular dependencies. It would be far from a standard solution though. | | |
| ▲ | mikeryan an hour ago | parent [-] | | NX Monorepos work that way. Broadly speaking (and with many exceptions) all packages end up in the root. It “builds” release distributions with the correct package.json files and transpiled js. It helps keep all your related packages on the same dependencies. It’s hell for react native sometimes though. | | |
| ▲ | user43928 22 minutes ago | parent [-] | | I don't see what you mean. With nx you define the dependencies between your tasks, so that the packages build in the right order and with caching. I do not think it changes anything about how packages are installed by the package manager or bundled by the bundler. You can declare build tools in either the root package.json or packages/a/package.json, and I don't think anything prevents you from bundling something declared in devDependencies. On second thought, I see now that you probably mean it helps keep shared dependencies at the same version when you declare them in the root package.json. That's a feature of npm/pnpm/yarn workspaces though, not nx itself. And it only works with bundled dependencies, since they would be undeclared in the package itself and thus couldn't be installed externally. If you need that, I think pnpm catalogs would be the right tool. |
|
|
|
| |
| ▲ | zamadatix 5 hours ago | parent | prev [-] | | One should understand how their tools work but there's no such thing as doing that without understanding things across the abstractions involved and at least a good portion of what happens under them, Deno or not. It works the same way you use a bundler instead of assembling your own and so on and so forth down the tree. The farther down the tree, the less focus you should give your understanding to, but that's not an excuse for giving no understanding below the first layer. |
|
|
| |
| ▲ | behnamoh 7 hours ago | parent | prev | next [-] | | Yup, Bun is at the mercy of Anthropic, and we know the extents they go to protect their competitive advantage. | | |
| ▲ | simonw 7 hours ago | parent | next [-] | | "we know the extents they go to protect their competitive advantage" I don't. What do you mean? | |
| ▲ | buremba 7 hours ago | parent | prev [-] | | Use bun when it's drop in replacement of npm, never use Bun API itself. |
| |
| ▲ | Buttons840 7 hours ago | parent | prev [-] | | Bun always seemed weird because they decided to build it with Zig. I want Zig to succeed, but it's not stable yet. It reminds me of game engines. If you want to make a game engine, there's nothing wrong with that, but you should acknowledge that you're building a game engine, not a game--or rather, if your goal is to make a game, starting by making a game engine probably isn't optimal. It's the same for Bun. It's clear that they wanted to build a JavaScript runtime, and also they wanted to use Zig. They are doing both of these things, but when push comes to shove, their desire to use Zig was more important than their desire to make a JavaScript runtime, I believe. | | |
|
|
| ▲ | elcritch 7 hours ago | parent | prev | next [-] |
| How will this affect those of us relying on those projects? It's not just those companies but also the customers of those companies. |
| |
| ▲ | cscheid 7 hours ago | parent | next [-] | | I lead a project built on Deno; it was not my call, just to be clear. Deno turned out unfortunately to be a miss and we had seen the writing on the wall. FWIW, we're moving to a much bigger Rust core program with node for JS user extensibility. (In other words, I'm not willing to risk using the deno_core crates.) The one silver lining here is that Deno had already increased their node/npm compatibility. Migrating off of the jsr ecosystem and back to npm is going to be less painful than one might imagine. I expect present LLMs to be sufficiently good at the task, for example. | | |
| ▲ | daveidol 6 hours ago | parent | next [-] | | Can you elaborate on why it was a “miss”? | | |
| ▲ | cscheid 2 hours ago | parent [-] | | A few things off the top of my head (we've been on deno since 2022) - They originally bet on being a TypeScript dialect that didn't quite match the expectations of node in a few small places that ended up mattering hugely. - One of the original value propositions was "deno compile" and "deno bundle", and those never actually worked well enough to be robust for our real-world use cases (early on they didn't support TLA, then dynamic imports didn't work, then they had issues with ARM compilation) - Then they simultaneously tried to support node syntax out of the box with npm import specifiers _and_ create a new javascript registry (jsr.io) - At the point where we expected them to actually make their base-level ecosystem robust, they pivoted to edge compute, and then the writing was on the wall |
| |
| ▲ | tempest_ 5 hours ago | parent | prev [-] | | LLMs writing rust that no one reads will spell doom for all the server side JS stuff in time. |
| |
| ▲ | gritzko 7 hours ago | parent | prev [-] | | Do these runtimes have some value today? Sort of. But the cost of reimplementing them goes down, down, down. I made two bespoke JS runtimes within a year. Next year it will be even easier. Deno/Bun see the picture better than I do, and they decided it was the right time for an acquihire. |
|
|
| ▲ | not-kinsale-joe 6 hours ago | parent | prev | next [-] |
| I wonder how much they have financially contributed to Deno. |
|
| ▲ | 2 hours ago | parent | prev | next [-] |
| [deleted] |
|
| ▲ | jimbokun 6 hours ago | parent | prev | next [-] |
| At least open source gives them an opportunity for the community to find a way to support it going forward. But I suppose that's just table stakes these days. |
|
| ▲ | ForHackernews 5 hours ago | parent | prev | next [-] |
| Radical idea here, but maybe those many companies could _fund_ the development of key components of their infrastructure. |
| |
| ▲ | christoff12 2 hours ago | parent | next [-] | | Indeed, seems like it should be pretty straightforward. I understand why the venture-backed entity couldn't do this, but given the reactions here, could a new maintainer not take over and simply charge for support and future enterprise features like the Sidekiq guy? | |
| ▲ | galaxyLogic 2 hours ago | parent | prev [-] | | Maybe but only if that gives them a competitive advantage. |
|
|
| ▲ | jkahrs595 5 hours ago | parent | prev | next [-] |
| Anybody who has been bitten by the many issue with Yarn over the years can tell you, just stick with stock tools and deal with it. |
|
| ▲ | trio8453 6 hours ago | parent | prev | next [-] |
| Asking as a non-JS person - what's the cost and effort to switch? |
| |
|
| ▲ | conartist6 6 hours ago | parent | prev | next [-] |
| It's why I usually look more closely at the comments here than at the story for stories like this. |
|
| ▲ | porridgeraisin 7 hours ago | parent | prev | next [-] |
| I was really surprised that cloudflare was acquiring deno to be honest, I have written about this here before, Deno was always sort of dead to me due to how little they cared for compat of all kinds (nodejs, CJS, backwards). It was refreshing to see bun care a lot about it (well, now its on a different path in other ways). Then I read that paragraph, and it made more sense that they're acquihiring + killing. |
| |
| ▲ | vazark 7 hours ago | parent | next [-] | | The way i see it, cloudflare acquired celld. Deno was just given a decent burial as part of the package | |
| ▲ | troupo 7 hours ago | parent | prev [-] | | > I was really surprised that cloudflare was acquiring deno to be honest It's an acquihire. They hired the people behind Deno | | |
|
|
| ▲ | coldtea 7 hours ago | parent | prev | next [-] |
| >So many companies went all-in on Deno in recent years. Companies went all-in in a barely established niche player with 1/100 the traction, instead of sticking with Node, and even better an LTS Node, and are now surprised? Do they also do their front-end in Dart? |
| |
| ▲ | jamesrr39 5 hours ago | parent | next [-] | | For me Deno has a really nice security posture, the permissions model is just something I haven't seen in from other runtimes (JS or otherwise). There were other nice features (native typescript support, compilation to a standalone binary), but the permissions model was just unique. https://docs.deno.com/runtime/fundamentals/security/ | | |
| ▲ | flanbiscuit 5 hours ago | parent | next [-] | | Which Node now has: https://nodejs.org/api/permissions.html - since v20 - Apr 17, 2023 https://nodejs.org/learn/typescript/run-natively - stable and without a flag since v22.18.0 - which sometime after Apr 24, 2024 which was the v22.0.0 release https://nodejs.org/api/single-executable-applications.html - Added in: v19.7.0, v18.16.0 but still in Active Development (not stable yet) - 2022 For reference, Deno was released in 2020 with all of these features from the start. Feels like it always take some healthy competition for Node to make big strides like this. Like the whole io.js fork thing a long while ago. | | |
| ▲ | oofdere 4 hours ago | parent | next [-] | | You can give permissions to Web Workers when starting them in Deno, which afaict Node cannot do. | |
| ▲ | 8n4vidtmkvmk 5 hours ago | parent | prev [-] | | I didn't know node got that too but it says right at the start that malicious programs can bypass it. What's the point then? | | |
| ▲ | genxy 4 hours ago | parent [-] | | The Docker of JS runtimes. Deno will get picked up by the community. But CF should sponsor it for at least 250k a year. |
|
| |
| ▲ | LunaSea 5 hours ago | parent | prev [-] | | The security model has always been a half-baked afterthought. The initial versions were riddled with vulnerabilities . |
| |
| ▲ | CSMastermind 6 hours ago | parent | prev | next [-] | | Like a decade ago I got into a huge fight with a Staff Eng at our company over Dart. I had just been put in charge of the company's architecture and one of the first things I did was migrate everything to TypeScript (which was relatively new at the time). He was so angry I didn't pick Dart. Good choice by me in retrospect (though picking Angular 2 over React not so much). | | |
| ▲ | phatskat 5 hours ago | parent | next [-] | | I don't know enough about Angular 2 to know exactly how much of a bad choice that was, but my experience in React has always been "they should have used something else". I vaguely recall our lead backend being unhappy with his decision to do the original admin panel in Angular, but I chalked that up to him not being a frontender. For context: I begrudgingly adopted Vue a while ago after finding React to be too unwieldy, and part of that opinion is definitely related to a poorly written Redux implementation. | |
| ▲ | rezonant an hour ago | parent | prev | next [-] | | > though picking Angular 2 over React not so much It sounds like you're coming at this from a perspective of popularity and thus access to engineering candidates with expertise in it which is fair, but speaking as someone who also went with Angular 2 over React during those times, I'm still using Angular and I'm very happy with it from a technical perspective. Yes, it does mean there are less options for hiring, but it has been a positive experience for my team and for me in my own projects to stick with it. | |
| ▲ | darepublic an hour ago | parent | prev | next [-] | | My dart story. While in college for computer programming our professor telling us if we wanted to get ahead of the curve start learning dart. It was the future | |
| ▲ | ZeroCool2u 5 hours ago | parent | prev | next [-] | | It's really a bummer that Dart gets a bad rap, because of its early versions. The recent versions of Dart are a lovely language to work with. Pub is the only package manager I've used that approaches Cargo in quality. | | |
| ▲ | p-e-w 5 hours ago | parent [-] | | All TypeScript competitors got out-engineered by Microsoft. It’s a triumph of experience over new ideas. How well designed the initial versions of TypeScript were can be seen by how smoothly later versions were able to build on them, and even after so many major improvements the language has barely a wart (enums probably being the only one). | | |
| ▲ | WorldMaker 5 hours ago | parent [-] | | namespaces are the other one, and that's a fun legacy because Typescript had to implement a half dozen module systems in the early days: no modules (jQuery-era globalThis pollution), AMD, UMD, CommonJS, SystemJS, Typescript's own which was proto-ESM inspired but not ESM, then Typescript's realignment with ESM. Something of its own sign of Microsoft out-engineering some of the hiccups of the ecosystem as a whole. (I started using Typescript < 1 simply because it was the safest and easiest way to write AMD modules also with an eye to UMD or SystemJS output with just a compiler flag change if you needed to ship something compatible outside the house.) |
|
| |
| ▲ | lenkite 3 hours ago | parent | prev [-] | | > He was so angry I didn't pick Dart. Good choice by me in retrospect (though picking Angular 2 over React not so much). 1/3rd of apps on the iOS and Android app store use flutter and that percentage is growing over time. Whereas people are moving away from JS/TS frameworks like React Native. | | |
| ▲ | galaxyLogic 2 hours ago | parent | next [-] | | I wonder if TS could evolve into a compiler whose output would use either Deno, Bun or Node? When the exe is compiled it no longer matters what libraries it uses underneath? | |
| ▲ | michaelsalim an hour ago | parent | prev [-] | | Where is that stat from? |
|
| |
| ▲ | sysguest 6 hours ago | parent | prev | next [-] | | well Deno was the only player who could have prevented recent npm security disasters: built-in permission system for filesystems and etc just forbid writing to important folders like ~/.ssh | |
| ▲ | limagnolia 5 hours ago | parent | prev | next [-] | | But it is Open Source, so if said companies like Deno enough, all they have to do is pay for its continued maintenance and development. This is one major thing that sets Open Source apart from proprietary software. | |
| ▲ | jchw 5 hours ago | parent | prev | next [-] | | > Do they also do their front-end in Dart? Hey, you jest, but Flutter has a lot of traction! (I conceptually like Flutter, but I can't get over the Dart thing, so I'm not part of that traction.) | |
| ▲ | maherbeg 7 hours ago | parent | prev | next [-] | | Slack? I think some of their plugins API was all Deno based for a while. | | |
| ▲ | chaosharmonic 6 hours ago | parent [-] | | Netlify and Supabase have also been using them for edge functions. | | |
| ▲ | 0x6c6f6c 6 hours ago | parent [-] | | Given these two are both comparable to the Cloudflare developer stack that I often think of as alternatives, this makes the decision to let Deno die feel at least a bit more calculated. | | |
| ▲ | chaosharmonic 5 hours ago | parent [-] | | I do wonder if it's been shopped around to any of these large-scale users as potential maintainers. Seems in the overall wheelhouse for Supabase in particular. | | |
|
|
| |
| ▲ | vmg12 7 hours ago | parent | prev | next [-] | | > Do they also do their front-end in Dart? This is actually a good decision though. | |
| ▲ | Onavo 6 hours ago | parent | prev [-] | | > Companies went all-in in a barely established niche player with 1/100 the traction, instead of sticking with Node, and even better an LTS Node, and are now surprised? Wait till you hear about this thing called Bun. Though with a tiny core team and almost carte blanche AI credits, they are a lot leaner. | | |
| ▲ | locknitpicker 4 hours ago | parent [-] | | > Though with a tiny core team and almost carte blanche AI credits, they are a lot leaner. Bun's release cadence dropped like a rock after the rewrite, in spite of the radical AI militancy and virtually infinite AI budget. | | |
| ▲ | rwz 41 minutes ago | parent [-] | | They shipped a metric ton of new features in 1.4 and it seems relatively stable enough that it doesn't require too much hot bug fix releases. |
|
|
|
|
| ▲ | hodder 6 hours ago | parent | prev | next [-] |
| Honestly migrating back is trivial now. It just isn't that big of a pain. |
|
| ▲ | 2OEH8eoCRo0 7 hours ago | parent | prev | next [-] |
| > So many companies went all-in on Deno in recent years. They should hire a few devs to develop it then. |
|
| ▲ | clint 6 hours ago | parent | prev [-] |
| Seems like an extremely risky thing to do. Luckily they can keep maintaining it and improving it if their business is truly dependent on it. |