Over the last year I’ve become increasingly interested in Ruby on Rails. Although Rails has many technical reasons to peak my interests what interests me most is the passion that those using Rails have for it. Over the last couple weeks I’ve started experimenting with Rails. I have a small application that I’m planning on writing in Rails if I ever stop playing around. During my experimentation I’ve taken notice of the following things:
- The design of the domain model in Rails is right up my alley. The entity framework that I developed at my last company (as well as the one I wrote for my own projects/products) was based on the ActiveRecord pattern. Although the ActiveRecord pattern isn’t the purist approach I think it is very pragmatic. I like pragmatism.
- Rails validation is similar in concept to the attribute based validation I’ve implemented so again I’m a fan

- Built in support for AJAX is nice. Prototype and http://script.aculo.us/ (see demos) are very powerful javascript libraries that we could all benefit from learning and exploring.
- The focus on MVC for building Rails applications does a nice job of ensuring presentation logic is clearly seperated from business oriented logic. Nice.
- The implementation of views gives me bad flashbacks to my classic ASP days, yuck. Server controls in Rails would be sweet.
- Migrations in Rails is awesome. I’ve had a lot of frustrations with managing database migrations for applications and while migrations in Rails doesn’t solve them all it’s very nice to have something to use for managing this process.
- A lot of the common scenarios for domain objects have nice support. For example we have built in support for things such as tracking created on dates, treating a collection of objects as a list (or a tree), providing built-in support for tagging, and more.
I’m sure I could think of a lot more things that one could, or I should, dig within Rails, however that’s not really the point of this post. What has made Rails so successfull? Is it all these cool features? Is it cool editors like TextMate?
I think it’s the fact that Rails hasn’t tried to be everything to everybody. In desiging Rails David has embraced constraints. He didn’t set out to use every pattern in the book. He didn’t worry about trying to be a purist he focused on being pragmatic. Pragmatism is where it’s at.
A practical, matter-of-fact way of approaching or assessing situations or of solving problems.