Ruby on Rails is a winner

(memo to self: Do not take on ANYTHING extra during the month before or the 3 weeks after E3.)

The Ruby/Rails agile development *environment* is truly amazing, and the best “thing” I’ve ever seen for enabling rapid development.

It’s been a while, but I was finally able to finish working through the sample application, the code and the major parts of the book.

On the one hand, I’m (still) convinced that this kind of incremental development (agile development) has an important role in software development. I guess I expected more, but I’m probably less “whelmed” than others might be, who aren’t already believers in rapid, agile development. I think that this method is pretty much an extension of what I’ve been using for over 15 years, so Ruby on Rails wasn’t quite the eye-opener for me that it might be for others. I already believed, and now I’m even more convinced.

Between the automatic creation of initial “stub” code, the class/object<->DB mapping, and the test harness creation, Rails is great for exploratory programming. But even more importantly, it makes all this natural and easy. I wish I’d had Rails-like systems 15 or even 10 years ago. I might still be programming!

Since I went into this believing that this style of development was a good idea, I probably wasn’t as affected much as as someone might be who had not been exposed to this kind of process. I hope that people who weren’t already in the “agile” camp will take this book to heart and really spend some time getting used to agile concepts.

Now, while Ruby is a perfectly fine language for these kinds of applications, it’s not (yet?) in wide usage. There’s a LOT of legacy code out there, and I *really* wish that I could use Rails (or something similar) for other languages as naturally as for Ruby. I understand that most “legacy language” don’t have the features that make Ruby+Rails so clean, butI really wish I could do agile programming in PERL, Python, or C/C++ as easily as I can in Ruby.

So, bottom line?

The overall Ruby on Rails programming system is, in my opinion, the way that programming should be done, wherever possible. It encourages good requirements definitions (incrementally), it has a natural style that is supportive of good programming practices, it hides trivial details with sensible defaults, and it fosters incremental, complete and regression testing as well as complete documentation.

If I had to learn one new programming language for web+database appplications in the next year, I’d learn Ruby. If only so I could develop in Ruby on Rails.