Reason #67 •
March 8th, 2026
Bundler
Bundler is Ruby's standard tool for managing gem dependencies.
It was created by Yehuda Katz and Carl Lerche in 2009 and has stood the test of time incredibly well. Some standout design decisions include:
- Using a lock file to ensure reproducible dependencies across environments (this may seem obvious now, but it was a novel idea at the time)
- Installing gems to a global system directory by default, greatly improving performance and reducing disk space usage compared to package managers that install dependencies on a per-project basis (looking at you node_modules)
- Allowing dependencies to be resolved directly from git repositories or local paths
- Allowing groups of dependencies to be defined in the Gemfile and providing APIs to control which groups are installed and loaded in different environments (e.g. development, test, production)
- Restricting dependencies to a single version per dependency, preventing the possibility of transitive dependency explosions (this might be attributed more to Ruby's global namespace than to Bundler, but it's still hugely beneficial for dependency hygiene in my opinion)
As far as I'm concerned, some 17 years on, Bundler is still the gold standard for dependency management across all programming languages!