The Debate Rages

It seems that I'm being propped up as some kind of poster boy for Rails hysteria. I would have everybody re-read the "Conclusions" paragraph of my original post, which states (to paraphrase myself): This Rails stuff if really nifty, surprisingly efficient, and I had a lot of fun working with it, but I'm not quitting my managed-languages day job any time soon. For those of you who wish I had said something more controversial, I apologize, but I'm not all that controversial in real life (my wife and business partner would both describe me as conflict-averse).

Secondly, I wanted to respond to Keith's comment below, but I wanted to do it up front here on the main blog, because it speaks to something important and I don't want it buried. Here's Keith's comment, in it's entirety:

My issue here is the public has no way of judging the merits of this comparison, and I highly suspect there are fundamental architectural differences between the two versions that account for at least a decent portion of the LoC differences. In other words, you're not entirely comparing language vs. language here, you're muddying it by comparing development frameworks and architecture. You're also not attempting to explain *where* the Ruby version saves and the Java version bloats, and why. I wouldn't doubt it if the Java version was overengineered to begin with. But it's all speculation at this point. What I read is hype in support of your next book. That's what the sigh is about. Promote all you want, certainly, you're doing a great job. I'd just like to see a little community contribution, too, while you're at it.

Let me make this absolutely plain so there is no confusion: I am not involved in either the Ruby on Rails project, the Ruby language, or any book about Rails. I'm not employed at 37signals or Next Angle. I've never met DHH. At most, as a reviewer Dave Thomas' forthcoming Rails book, and as Bruce Tate's co-author on "Better, Faster, Lighter Java" and "Spring: A Developer's Notebook", you might say I have a friendly interest in Rails doing well because that would mean two friends of mine were doing well. But I receive nothing from having posted this story other than the wonderful discussion it has spawned.

As for contributing to the community, I have offered, again and again, to take part in any open source version of Petstore-or-something-like-it that anyone wants to organize, but at this point, I think we've gotten off track. Here's where I was trying to go with this whole story, and where I think we've gotten lost along the way:

There are a lot of developers in the world who develop in Java or .NET or C or Perl because that's all they know. There's a lot of FUD in the world that says to stay away from X, or Y, or Z because it isn't, or, my favorite, "can't possibly be" any good. I took a gamble and tried something new, that being Ruby on Rails. I was genuinely surprised, and pleased, by the results, and so was my paying customer. That leads me to want to tell people about it, because when I have fun, I want others to have fun. It was that impulse that led me to co-author the Spring book with Bruce, because Spring is a lot of fun, and makes writing Java apps fun. (And by the way, if you don't think writing books is contributing to the community, you haven't seen many royalty statements. ;-) )

So I say to you: take a look at Rails. If you are writing web applications that babysit a database, and want to try a more expressive and less restrictive language than C#, VB.NET or Java, it just might be a good thing to do. If your application needs XA transactions or detailed security management, you might want to stick with a strongly-typed, managed environment with a lot of vendor support, because overall, that will be a more pleasurable experience than fighting against a tool that is ill-suited to your needs. As anecdotal evidence, I offer you this one pleasurable experience I had. Hopefully, I'll follow it up with others.

I suppose it is also possible that every single blog post in the development blogosphere must end with YMMV, but that just seems redundant.