I am messing around with a new web project and decided to play around with rails again — last time I checked it out was a few years ago, and although it looked cool I didn’t have enough time then to spend on the project I was playing with.
So I updated the rails install on my machine and got started with the project.
$ gem update rails -y
I like that the new version defaults to using sqlite for the database, saves me screwing around with MySQL (that’s another post…). Then I was browsing around reading about testing frameworks and saw that Test::Rails is supposed to be the great thing since it allows you to separate view and controller tests. So I gem installed that and made the manual changes suggested.
And suddenly my tests were half broken.
It turns out that Test::Rails doesn’t work with rails 2.0 or greater. and this has been known since January. So I wasted a half hour trying to make it play before I threw in the towel and went on with rails 2.x, having to do without Test::Rails.
Overgeneralizing: this is the problem with dynamically typed languages, hype, and the open-source process in general. Eric Hodel, the author of Test::Rails, probably has better things to do (like give talks and work on lucrative projects) than make Test::Rails work with rails 2.0. The rails developers can’t be bothered to maintain compatibility with every rails-related plugin out there, and even if they did provide a patch to Hodel, there’s no guarantee it got into his official repository. It may be living out there in the wild in somebody’s git repository, but that’s not exactly helpful to me.
Of course I could fix it myself. But I’m not trying to make the ruby/rails tools better, I’m just working on my project.
I love open source, and I’m continuing with the project on rails. But it becomes clearer and clearer to me why so many people turn to safe, boring, slow, ugly — but nonbroken — Microsoft solutions.