My second impression of Ruby on Rails is again good. I’ve began to dig into it quite a bit with my developing world project. I admit that I’m still not an expert, but I do have a few things to note:
As everyone will tell you, Rails does a lot for you. The amount of code you have to write is extremely small, and the code that you typically write is more interesting relative to most web code. What I mean is that Rails code is minimized in areas such as form processing or database access, so most of your time is spent coding business logic and views.
Rails is insanely well supported. There is a plugin or gem to do almost anything you want, and the support is wonderful. Googling for Rails information always turns up good results, and the IDEs available, for example Aptana, are super powerful.
You’ll try to do everything the “Rails way.” Rails allows you to do things by hand, for example manually include a style sheet or manually write an AJAX widget. However, Rails also offers tools and techniques to make things such as including style sheets and writing AJAX widgets easier and faster. This is somewhat of a catch-22, though, because I find myself spending too much time learning the “Rail way.” I suppose this is the same with any framework – in order to use it to its full potential, there is usually a large learning curve.
Another con that I have not noticed first hand is performance. I just read an article about Ruby on Rails performance problems, which describes how Twitter is moving away from Ruby on Rails for performance reasons. While reading through that article I noticed a comment about a particular PHP rapid application framework called CakePHP. I’m going to look into Cake, because it might be a pretty cool alternative to Rails.
More Rails updates coming soon!
Update: Open has a good post about Ruby on Rails scalability enhancements. Another good read.
Update2: ReadWriteWeb has an awesome article on website scalability, in particular about Twitter scalability.