Pensieri di un lunatico minore

19 February 2006 Ruby

Riding the Rails

In the past, I have commented on Ruby on Rails, but to be honest, I’ve never built anything larger than a blog application with it. The main reason was that my needs at the time were incompatible with what Rails was attempting to be. I needed to integrate with a complex beast of a multi-database legacy system, and the reality was that the functionality wasn’t ready at the time. It’s all a matter of not choosing the wrong tool for the job.

Since that time, I’ve changed jobs and am working at a different company. As part of that, I am working on some prototype work for a new project, and Rails seems to be a valid option to produce the web component of the application. The system is backed by a relational database—something I’d love to get rid of, but don’t have any choice in—and I will be using Rails as the prototype mechanism. In this situation, there is no legacy schema to speak of, and I can conform to some of the expectations of the Rails architecture.

Some people might wonder why I’m not using the two tools that I’ve normally used in situations like this: Python and Smalltalk. The answer is a bit more muddled than I’d like it to be. First, I’ve largely quit writing Python code. It’s not that I don’t like Python, but instead that I see it as a language that has lost its direction and is suffering from syntactic-sugar rot, with no sign of that letting up in the near future. It does have a great web-framework in the form of Django, but Python just leaves me cold of late.

The second choice, using Smalltalk and the brilliant continuation-based framework Seaside is unfortunately a non-starter for two reasons. First, the shift from a traditional development approach to a Smalltalk approach is simply too great for many people to make in a single step. Second, I’m severely dependent on database integration, and I’m still unable to find myself satisfied with much of what’s out there. For this project, it’s just too much of a jump. I’m hoping that the ideas in Ruby, largely stolen from Smalltalk, will bring about some interest in more dynamic behaviors.

While I start working on this project, I have two books that I’m going to be keeping handy, in both their print and PDF forms: