4 ms·
Is it me or does this project tries to do too many things at once? "Bun is an npm-compatible package manager", and an http server, and a websocket server, and a
by gregoriol 3y ago
Is it me or does this project tries to do too many things at once? "Bun is an npm-compatible package manager", and an http server, and a websocket server, and a test library, and a bundler, and... why?
- dimitrisnl 3y agoThat's the selling point
- gregoriol 3y agoThat's the scary point
- norman784 3y agoI like their selling point and if there is enough demand, I think the node community will implement at least a few of those features.
- dimitrisnl 3y agoMigrating bundlers and changing test-runners is no fun. If bun can handle that with consistent performance and no goofy upgrade paths, I'm happy.
- dgellow 3y agoBecause that’s what people want. That’s how you can get a really good developer experience similar to golang or other languages. Just install one tool to build, lint, format, run tests, run your local project. No time spent trying to setup a bundler when what you want is to build a new project. Regarding runtime libraries, it’s similar to the battery-included approach of go or python, you get what you need to get started out of the box and only reach for dependencies when you want to go further. Testing library, an http server, a websocket server that’s perfectly reasonable to have as core library of a runtime developed to run web servers.
- deleted 3y ago[deleted]
- norman784 3y agoI think is that modern languages like Go and Rust (there are for sure others, but I don't have experience with any other language that ships with all the tools) ship with all the tools you need, formatter, linter, test runner, etc, Go goes even further than Rust and ships a very complete std focused on web and Javascript is used primarily in web, so it makes sense that ships with all the libraries needed to build a web server, also websocket is a standard, so it's easy to implement it and make it work with the browser. Nowadays if you start a new Javascript project you need to setup, vite/esbuild/webpack, eslint/oxlint/biome, prettier, typescript, etc, that is a ton of dependencies that YOU need to maintain for years, and if it is part of the tool you are using, then you don't, ideally there shouldn't be a breaking change, let's see how bun manages that when the time comes. I am waiting for bun or a tool that has everything I need to bundle my frontend app, I'm very tired of fiddling with all the dependencies and try to make to work every dependency together, I have a legacy project that I work on, I would have migrated a long time ago to another tool, but there is none that would fix the current issue and it's managing the project build, test, formatter, lint dependencies, after using Rust I feel super frustrated with the Javascript ecosystem state. Also you asked why? I want to work on the project, there is already a lot of work to maintain the dependencies up to date, the tooling should not be part of that work.
- CaptainOfCoit 3y ago> Nowadays if you start a new Javascript project you need to setup, vite/esbuild/webpack, eslint/oxlint/biome, prettier, typescript, etc, that is a ton of dependencies that YOU need to maintain for years That's a choice YOU make, not everyone makes that choice, especially because they want to be able to continue working on a project for months/years without accruing automatic technical debt as all those projects move forward without actually thinking about backwards compatibility.
- noahtallen 3y agoRight, but that’s why languages like Rust have an excellent DX. There is no complex choice about what linter, formatter, test runner, doc builder, or package manager to use. These at all such common requirements for building software at scale with lots of contributors that the language tooling just includes them. It’s not hard to maintain, because the language toolchain is so foundational it needs to be stable. JS doesn’t have anything like that, which is why projects like Deno, Bun, Biome, etc are interesting. These projects explore how JS can also get a great out of the box experience without requiring the complex setup and maintenance steps that so many existing tools require. Besides, professionally, you normally don’t make the choice in a vacuum. Linters, package managers, testing, bundling/building, type safety, and even formatting are all very useful in big projects with lots of people. So you often don’t get to say “ah we just won’t have unit tests because jest doesn’t care enough about backwards compatibility.”
- melodyogonna 3y agoBecause the project would be a failure otherwise, and including those is the main goal of the project.
- nsonha 3y agoif the goal is to be an alternative runtime (which it is actually claimed to be), I don't think I like these non-standard APIs. I however find Bun more useful as a Swiss army knives, to use with nodejs, to reduce the number of development dependencies.