← Back to context

Comment by pier25

2 months ago

The idea of Deno is brilliant... but they should have either focused on Node compat from the first day (like Bun did) or just keep doing their own thing with built-in APIs to solve the most common needs (db drivers, router, s3, etc).

They had the right ideas but it's like investors panicked midway and demanded a change in direction.

https://github.com/oven-sh/bun/issues?q=is%3Aissue%20state%3...

Setting aside the fact that the S3 built-in API is now neglected, I'm skeptical about the runtime providing such APIs. As Ruby on Rails does well, these are issues that should be handled by the framework, not the runtime. While these APIs may seem convenient at first glance, breaking changes to APIs integrated into the runtime are difficult. It's not impossible, but it would likely cause dissatisfaction among many users. Furthermore, constantly keeping up with updates to third-party products would result in immense maintenance costs.

Users should also reconsider the extremely high backward compatibility that JavaScript has maintained before jumping on such hype.

  • > I'm skeptical about the runtime providing such APIs. As Ruby on Rails does well, these are issues that should be handled by the framework, not the runtime.

    Well there's no Rails for JS and in case you're not aware there's an absolute security disaster going on with NPM.

    For a typical Node project dozens if not hundreds of dependencies need to be used. Eg Platformatic needs 258 dependencies of which 97 depend on a single maintainer.

    https://npmgraph.js.org/?q=platformatic#zoom=h

    You only need a single dependency to become compromised. And as anyone who has maintained a Node app knows, with all those dependencies you're like 5 mins away from an incompat issue.

    Maybe another solution would be for the runtime to provide like a versioned standard suite of deps that matches the runtime version. So these are secure and fully compatible with the runtime and with each other.