Over the past few months I’ve been playing with Ruby on Rails, and while it’s an innovative solution to small- and medium-scale web development problems, it’s not really the Java killer that everyone’s harping about. Don’t get me wrong, I love it. I love everything about Rails — it’s actually elegant.
As an expert Java engineer, an expert Perl programmer, and intermediate Ruby programmer I have come to the conclusion that I would start projects with Rails, get them prototyped, and if the user community was small and the number of engineers on the project remained small I would keep it in Rails. However, Ruby, like most other scripting language doesn’t have the ecosystem for “programming in the large” in such a way that I would select it for general enterprise-wide use. As an Enterprise Architect I wouldn’t rest large-scale complex mission critical requirements on Rails.
If your project can benefit from Ruby and Rails, definitely use it. If you have fun using it, more power to you. If you love your job because you’re now using it, that’s wonderful. But please lets keep our enthusiasm for this technology, and all others, firmly grounded in applicability to a suitable purpose. Java is platform, Rails is a web development framework. The Java ecosystem, training, engineering talent, architecture talent, and third party support can not be matched by Ruby (yet). That’s just reality and just saying “yeah, but Rails is better” won’t change anything.
Even though we may love Rails, lets make sure we don’t start confusing our bosses and clients by tossing it in to the ring everytime a web application requirement comes up. If you’re starting a Web 2.0 company, give Rails a shot. If you’re creating an enterprise application to be sold into a Fortune 500 company, stick with Java (or .NET).