Poll: Is Ruby on Rails suitable for the enterprise?

Take the developer poll, and let us know if you agree with Justin James that Ruby on Rails is best suited for public-facing Web applications.

If I were developing a public-facing Web application, and I was not able to use OutSystems Agile Platform (my Web application system of choice), I would consider Ruby on Rails (RoR). From everything I've seen and read (which is a lot!), RoR is the best system available. Other applications have their own advantages, but I think RoR hits the mark across the board.

However, for an internal-facing enterprise application, I still think .NET or Java (depending mostly on your company's use of Windows servers and Active Directory) is the way to go. RoR lacks so many of the enterprise stack items and enterprise feature list "must haves" like integration with Active Directory. In addition, I don't think enterprise IT teams work well with dynamic languages like Ruby. There was a reason why Perl evaporated in the enterprise Web development market as soon as Java and ASP.NET were up to snuff.


Keep your engineering skills up to date by signing up for TechRepublic's free Software Engineer newsletter, delivered each Tuesday.


Justin James is the Lead Architect for Conigent.

Mark Miller
Mark Miller

A couple things come to mind. One is that Twitter was originally(?) written in RoR, but they eventually switched to a different technology, because it didn't scale effectively. That was their story, anyway. I'm sure Rubyists would disagree that that was the real culprit. Re. your point that enterprise software dev. teams don't do well with dynamic languages, I thought this commentary by Robert Martin of Object Mentor was interesting. "What Killed Smalltalk Could Kill Ruby, Too" Martin's main point, which I think he quoted from Ward Cunningham, was that what killed Smalltalk was "it was too easy to make a mess." Martin said that this could spell the doom of Ruby as well, though it hasn't so far, which is something good to ponder. Cunningham added that C++, for example, had the advantage that if you make a mess, it makes it very painful, very quickly. So programmers are motivated to be disciplined, and not to make a big mess in it. Whereas in Smalltalk, you could go on making a mess for a while, and not feel that affected by it. By the time it becomes onerous, and really starts to hurt, you've created a huge, incomprehensible mess! Another part Martin got into was that even though TDD was invented in the Smalltalk community, it didn't gain widespread adoption in it. So the messes became so prominent that they drove people away from it. He feared the same thing would happen with Ruby. It's interesting hearing this angle, because another narrative I'd heard was that Smalltalk got killed because it didn't "get with" the internet, and Java sucked up all the talent that had been using Smalltalk before. Maybe it was a combination of both.

Editor's Picks