Well, after flirting with the idea of learning Ruby on Rails for months, I’ve finally found a reason to actually dig into it. There’s an application I had in mind for personal use that involves recording data and presenting it in various reports, and I have some ideas of how it could be expanded to be useful to many users. Rather than write it in PHP or Java, I’m writing it in Rails.
Despite some silly mistakes, I got a very basic skeleton working in just a few hours of work. The data model right now consists of three tables, all of which are related, and I can now enter data and view it using the basic scaffold pages. I had to customize them to get the relationships working (for data entry), and the next step is to incorporate the relationships into reporting.
My first impressions are very good. I’m not sure how I’d describe Rails to a PHP user. To a Java user, I’d say that Rails is a combination of Struts, Hibernate, XDoclet, and AppFuse. Code generation is a huge part of Rails, as is reflection of the database structure through ActiveRecord.
The other most important feature of Rails is abstraction of most things that you’d use configuration files for in a Java framework. As long as you follow the conventions, you can skip configuration. I’m eager to find out what happens when those abstractions start to leak.