Right. Now I am really confused. You went out of your way to build gem building support into GH. You run a fricking gem repository, probably the largest after Rubyforge itself. If you honestly agree that using Rubygems is "utterly insane" then .. wtf are you doing?
And Rails uses Rubygems. Of course. Its ease of use is one of the reasons Rails, and indeed Ruby itself, is so popular. Is it "utterly insane" for Rails to use Rubygems, too? And if all the core members are so against it, why does it? Why is Rails even in the gem repositories?
What am I missing here? Seriously, I just don't get it.
I'm currently kinda mentoring a friend of mine who's just getting started programming (my 3rd student!). I can personally attest that Rubygems is an invaluable resource for the beginner and intermediate Rubyist. Have you considered the possibility that your ultra-expert status has blinded you to the needs of the lesser 99% of programmers?
No one has suggested, is suggesting, or will suggest that you stop using Rubygems. That is not what this is about in any sense of the phrase. Everyone loves Rubygems, including Ryan Tomayko.
There are ways to use Rubygems without putting "require 'rubygems'" in your code. Those are the correct, most portable, least painful ways of using Rubygems. Learn them and cherish them!
That is what this is about: how you are using Rubygems, not whether or not to use them.
I just read that post again. Good post, but it's talking about something different. This HN article is about Ryan's views on the matter.
Of course I agree that libraries should not require it. I often want to use libraries by themselves. But apps!? What do you suggest - manually place each gem directory, by its full system file path, into $LOAD_PATH? How on earth are you going to use a gem installed in its default location by the ubiquitous "gem install" method, if not by, at some point, requiring rubygems?
This whole kerfuffle was started by this gist: http://gist.github.com/54177. Note the title: Why "require 'rubygems'" In Your Library/App/Tests Is Wrong. I thought that was a ridiculous thing to say then and still do. In my app!? That no-one else will ever see, my personal little IRC bot or something? What, pray tell, is the difference between loading rubygems on the command line every single time you run the program, or just writing in the source because you know your app needs it?
I have no quarrel with best practise for responsible use of gems. I agree completely with what Josh Peek writes. People publishing gems to public repos should absolutely learn how to do it without stepping on anyone's shoes. But that is not what Ryan says. Ryan says this:
You should never do this in a source file included
with your library, app, or tests:
require 'rubygems'
and that is extremist and indefensible and, IMO, flat out wrong.
update: I mean, let's have an example. Let's take a top-level app that depends on things. I know, thin.
He needs eventmachine. He requires rubygems and loads it. Tell me what he is doing wrong. Tell me how he should do it differently. Because I can not see what is wrong with that. And if that usage is wrong, then what is the point of even having Rubygems.
update 2: And I would like to clarify that I agree Rails should only be requiring Rubygems when it is being used at the top level, such as being launched from the binary or from the script directory, not when it is being loaded as a lib. It is always the top level app's responsibility to set up paths, etc - rails is a special case because it's both an app and a library.
So is Rails core member Yehuda Katz.
So is Rails core member Josh Peek.
So is Rails core member Jeremy Kemper.
Calling Ryan "the extreme odd one out" is a) untrue and b) unfair.