This post originated from an RSS feed registered with Ruby Buzz
by Daniel Berger.
Original Post: Barebones Distro
Feed Title: Testing 1,2,3...
Feed URL: http://djberg96.livejournal.com/data/rss
Feed Description: A blog on Ruby and other stuff.
I've been thinking more and more about the Ruby/Sapphire standard library, and the more I think about it, the more I think it should (almost) all be ripped out.
Why? In short, maximum flexibility. The fact of the matter is that rubygems has become the defacto manner in which to manage third party libraries. This is a good thing. The problem is in dealing with standard libraries that need updates.
This creates a dilemma. Look at REXML, for example, where some bugs have been found in recent releases. What's a user or admin to do? Upgrade to the next version of Ruby? What if the next version hasn't been released? What if the next version has (ahem) bugs of its own that you don't want to introduce? In these cases, you only want an updated library and not an updated Ruby.
In some cases libraries exist in both the standard library and as a gem. While this is better than no gem at all, it requires special handling in any code that uses the gem version, i.e. "gem some-lib" before the require line in order to force code to use the gem and not the standard library code. That could be problematic in practice.
But, if we distribute remove all libraries from the standard library (except rubygems itself), we don't run into this issue. REXML bug? Update. Test::Unit features added? Update. Think the gdbm library is useless? Never install it.