Ruby on Rails has been out now for a number of years, but lately its popularity has gone up quite a bit. I recently started digging deeply into Rails and the Rails ecosystem, and I found a lot to like. Here are 10 reasons why you should consider learning Rails.
1: The Ruby language itself
The Ruby language is pretty impressive. It combines some of the best features of dynamic languages, while taking some of the best ideas from strongly typed, static languages and blending them with an object-oriented paradigm that is focused on “getting things done” and not “writing lots of code.” The Ruby language is an excellent language, and you may very well find it makes you quite productive.
2: Code-based data model
In Ruby on Rails, you define your data model with code. In fact, once the initial data model is made, any changes to it are made through scripts that manipulate the model. While this may feel a little unusual, it means that it is trivial to replicate a Rails project on another server or even target it against another database.
3: Open source
Rails (and Ruby) are not just “open source,” they have a thriving, helpful community around them. Although the magic of open source is often overstated, the reality of Ruby and Rails is close to the ideal, which is great for new developers.
4: Well documented
You may not see a row of Ruby or Rails books at your local bookstore, but Ruby and Rails are both well documented. I’ve been very impressed by the amount of video tutorials available on the Web, both for free and for pay. Not only are there lots of these tutorials, but they are often of high quality, fun to follow, and much more effective than most books.
5: Good jobs
Rails may not have a pile of open positions, but the Rails jobs I have seen advertised all look attractive. I’ve talked to a number of recruiters and people running Rails shops, and the general attitude is that the superior efficiency allows them to pay a bit more and still save money. Also, the lack of experts means that they often employ people who work from home or otherwise get benefits that a .NET or Java developer would be hard pressed to get.
6: Rapid development model
The Rails development model depends upon convention, not configuration. This means that if you learn to do things the way Rails expects you to do them, it will do a lot of the heavy lifting for you. This applies to a wide variety of development tasks, and as long as you keep yourself from trying to micromanage Rails, you can work very quickly in it.
Rails makes no presumptions about how to turn your logic into output. Instead, you get 100% control over the presentation layer of your code. This makes tying your application’s logic to AJAX’ed front ends mighty easy. It also allows you to work closely with design experts, to produce nice looking sites that are difficult to do in less-flexible systems.
8: Vendor support
Is Rails available on every host out there? Not at all. But most hosts do offer it now. Even better, a number of them now specialize in Rails hosting and can provide a high level of service and support. In fact, Engine Yard employs a significant number of developers who are core members of the Rails and Ruby teams, giving them a massive amount of in-house knowledge of the product. As a result of specialization, you can get great help from these vendors, in stark contrast to the experience that most vendors typically provide.
9: Tool options
The relative simplicity of the Rails system means that there are already a number of good IDEs for Rails development. In addition to IDEs, the Rails ecosystem is filled with excellent tools that fill just about any need you may have, and most of them are free and/or open source. If you want to work in an ecosystem with topflight tools support, Rails is a good place to be.
10: Better fit
There is something distinct about the Rails philosophy (and toolset) in comparison to the Java or .NET environments. If you are the type of person who “thinks in code” and likes to work with scripts to get things done, Rails may be a great fit for you. While the focus on command-line tools may feel like a quaint anachronism, this mode of working simply suits some people better. There is a good possibility that you will find yourself very comfortable working in the Rails style, and it is worth your time to check it out.
Have you worked with Ruby on Rails? What did you like/dislike the most?