james mckay dot net
because there are few things that are less logical than business logic

Is there a future for Rails?

It seems that interest in Ruby on Rails has plateaued somewhat in recent months. A year ago there was quite a buzz surrounding it, particularly among .NET developers, for whom it has been a rather popular sideline. However, I canโ€™t help getting the impression that the buzz has subsided somewhat recently. Rails may take a lot of pain out of web development, but it has not taken the world by storm.

Why should this be? I think there are several reasons.

First, the business case for Rails always seemed somewhat limited to me. Developers love Rails, but managers tend to be less convinced. The enterprise world is entrenched in Java and .NET, and shows little incentive to change other than a gradual drift from the former to the latter. Successful open source web apps are mostly written in PHP; it seems that several of the most promising looking open source Rails applications, for example Mephisto and Collaboa, are to all intents and purposes dead. The area where Rails seems to be enjoying the most success is in the heady bubble of Web 2.0 startups and venture capitalists, but even then it still has to compete with .NET, PHP and Python.

The second reason is that some copycat MVC frameworks in other languages, such as Cake for PHP and Castle Monorail for .NET, have come on the scene in recent months, stealing a lot of Railsโ€™s thunder. These play much better with peopleโ€™s existing skills and save a lot of time that it would take to learn a new programming language. They also fit more convincingly into the world of web hosting, which is deeply entrenched in PHP and .NET. And therein lies the third problem: not many web hosts offer Rails as an option, especially on entry level packages, and this tends to be something of a hindrance to the success of open source applications.

Despite all this, I still think it is a good idea to learn Rails, as it will help you to become a better developer. Ruby is a nice language which does very well in terms of elegance, simplicity and extensibility, and Rails teaches you good programming practices from the word go, as well as giving you a solid understanding of the concepts of O/R mapping, active records, the Model-View-Controller pattern and test driven development. And although the market for Rails may not be all that impressive, it is by no means non-existent. It is just that supply is somewhat higher in relation to demand than, say, ๐”–๐”ฅ๐”ž๐”ฏ๐”ข๐”“๐”ฌ๐”ฆ๐”ซ๐”ฑ.

So yes it is worth learning, but I donโ€™t think it is something to spend too much time on. Rails can make a good compliment to your .NET skills, but I donโ€™t think it should replace them.