Apple supports Ruby and Rails very enthusiastically, and Laurent Sansonetti makes an awesome liason between Rubyists and Apple. There's definitely real belief in Ruby at Apple, and that's awesome.
But everyone who uses Ruby on OS X knows that you can't use the version that ships with your machine. Apple's upgraded its Ruby support for Leopard, and that's cool - it's good that they finally fixed the problem people were complaining about in 2005 - but there's a fundamental flaw with the whole idea. Nobody's complaining about that problem any more, because we're all using up-to-date installs, in most cases thanks to MacPorts. Apple tried to fix the problem from 2005 and just created a different problem for 2007.
Apple's latest OS ships with an improved Ruby, but it's not an un-crippled Ruby - it's just a less-crippled Ruby. Apple set up a custom install so they could get the latest Ruby into the latest OS X. They included features in their build that were not even part of any official release, as of that build. But they also skipped over the gem_server function of Ruby gems - which gem server replaces in the next release. I'm already using a pre-release version of that next release on my machine; that release is not far away. They installed Rails 1.2.3 as well, and the next release of Rails (2.0) isn't far away either.
The next release is never far away in fast-moving open source communities, and the Ruby and Rails communities both fit that profile. The Ruby and Rails schedules operate totally independent of the OS X schedule, and lumping the three of them together in any way at all is illogical wasted effort. This happens because Apple thinks they're adding a feature to a product. They need to realize that isn't the case. What they're actually doing is supporting a community which uses their platform.
As a feature on a product, the improvements to Ruby support on OS X might have looked great before the product shipped - it must have seemed brilliant a year ago when they were planning it - but in real life, the only people who want this "feature" on this "product" are the members of a community who will modify the platform if it doesn't suit their needs. And obviously, it won't suit our needs. Giving us something functionally useless which still requires manual package management is really just silly.
Compared to what they gave us last time, what they're giving us this time is great - but that comparison is a mistake. They shouldn't compare what they're giving us to what they gave us before. They should compare what they're "giving" us to what we're actually using. What they would realize if they did that is that we never use the Ruby they provide us, because it's always inferior to the Ruby we can install ourselves. Therefore, "giving" us anything (except real package management support) is just a silly waste of time.
What Apple really needs to do is say, some of our customers are regular humans who want a product with features, and some of our customers are open source power users who want a powerful platform. By failing to recognize the existence of this second group of customers, they've released an OS which provides shiny new features for open source power users. But open source power users build their own features - by definition - and this shiny new "feature," Ruby and Rails support, is almost already out of date, on the day of its release. Over time, it's absolutely guaranteed to not meet the community's needs, because the basic assumption Apple made was wrong.
Apple needs to make a fundamental distinction between features they provide and communities they support.
If they had made this distinction before they released the iPhone, they could have avoided an utterly correct class-action lawsuit as well.
Steve Jobs is very, very smart, but if you think about it, it makes perfect sense that a company founded in the 1980s still thinks of software as something that comes from big companies and goes out to itty-bitty consumers. This is basically the broadcast model, and nearly every tech company in business today knows that the broadcast model lost a lot of ground when the Web became mainstream. There still are millions and millions of consumers out there who want products with features, but that doesn't apply to anybody who buys a Mac so they can develop Ruby apps. Supporting a community is fundamentally different from providing consumers with features. In 2007, that should be obvious.
We shouldn't have had to write our own package manager, either. It's awesome that Apple embraces open source, but it would be cooler still if they understood it. In practice all this is easy to circumvent, but we shouldn't have to work around our computers to be productive. If we wanted that kind of frustration, we'd be on Windows.
Update: Chad Fowler says I jumped the shark. His note about updating Rails is true, and kinda obvious, actually - whoops - but in terms of the things in the comments about user control of the upgrade path, I think I've actually got a point. Both Chad and Apple (with Leopard's Ruby support) have done great things for the Ruby community, and I hate to be arguing with either him or Apple's awesome engineers, but I think fundamentally my critique stands. Apart from anything else, it applies equally well to the battle Apple fought and lost over third-party apps on the iPhone. The iPhone is primarily a consumer product, but it is also a powerful developer platform. Apple failed to recognize the second part of that, and made a lot of their own customers and developers angry in the process.
If you're just reading this to figure out whether or not you should use Ruby on Leopard, by all means, go with what Chad says. He's installed Leopard. I haven't. He's talking about Ruby on Leopard, and nothing else. I'm not. Apple definitely deserves kudos for the Ruby support, I called it awesome like ten times. But it's not perfect, and the imperfections highlight something deeper and more important.
Apple has a decades-long history of issues with third-party developers. That's what I'm talking about. It's not a new thing, and it's not constrained to Leopard's Ruby support. I remember reading similar anti-Apple screeds before I even got to high school. (I had weird reading habits as a child.) Apple has always had this attitude towards developers. It was bad in the 80s, but in a day and age when the line between customers and developers has grown much more blurry, it's really time for them to rethink that.
Update part 2: Rich Kilmer posted a very awesome and useful correction on the ruby-talk list. I stand corrected.