This morning I read a post from Rob Conery about Ruby on Rails and I think that while many of his points are valid they can be applied to any technology or platform. It's easy to fall in love with a technology and then when you find out it isn't perfect there is some backlash, no framework/technology/person/company is perfect. I think all of the problems Rob talks about can be found in just about any technology or language.
First Rob brings up DHH. I would rather have one foul-mouthed opinionated dane than a corporation with a foul-mouthed litigious CEO at the top. Microsoft has plenty of incredible and awesome people working there like ScottGu, John Lam, or the new Phil Haack and Hanselman... but the rails community has plenty of great people as well. Look at Thomas Fuchs (committer), Tobia Lutke (committer), Andy Hunt, Chad Fowler, etc. And personally I would rather someone say "*** you" than smile and nod while calling someone a Mort. One is at least straightforward and honest instead of condescending.
DHH might reject tons of community feedback, but I can submit a patch to Rails at any time. And while it might get rejected that is much better than what I can do with .NET which is to simple submit a form where it will most likely be rejected. I would guess that Microsoft probably rejects a higher percentage of community feedback than the rails team does.
The CDBaby example is flawed because it is more about the problems with doing an ambitious re-write with a new technology than about anything else. You could substitute different technologies and it would be completely believable. If you read his post most of the issues he has are about changing technology, not rails specifically. Look at the second to last sentence:
"Ok. All that being said, I’m looking forward to using Rails some day when I start a brand new project from scratch, with Rails in mind from the beginning."
I think the Twitter performance is also a moot point. When you get to that level of traffic you are going to have to do some drastic things, you would have to do the same thing in .NET I am sure. I find it encouraging that it is so easy to re-write part of your ruby code in C to make it perform better, what do you think they do in the .NET framework? C extensions in Ruby aren't that hard.
Lots of people got really excited about Rails and when they realized it isn't perfect and isn't going to single handedly solve all their problems there is going to be some backlash.
I have realized that nothing is perfect, but I enjoy writing applications in rails. So I am going to keep learning and embracing it, warts and all. The same way I have been using and embracing .NET (warts and all) for the last seven years (and for years to come I am sure).
-James
