Originally, the project had a goal of zero dependencies. [1] I assume that was considered infeasible with the migration to Rust, but part of the philosophy remained.
Yeah...but why? Like zero-dependencies is one of those things that gets you praise on HN, but it means you spend a lot of time building...terminal console abstractions and not actually shipping stuff to users.
My understanding is that the zero-dependency approach was both 1) to require no transitive dependencies on install, compared to installing hundreds of packages to run some of the current standard JS tooling, and 2) to have maximum control over performance and size.
It’s an extreme approach that intended to get extreme results. One could definitely argue that you can get just good results with a good approach (like using a bundler to produce a single output, writing perf-sensitive code, continually testing for perf regression), that’s just not the path they chose from the start.
[1]: http://web.archive.org/web/20201101030019/https://rome.tools...