In five years, compiling will be considered to be just a weak form of testing. —No Fluff, Just Stuff
Last summer, Ruby on Rails helped a small team of programmers at EarthLink to contribute to the New Orleans relief effort after Hurricane Katrina slammed into the city. Tasked with building a Web site to help survivors reconnect, the team had less than a day to get the application up and running. ‘Had we gone through our normal development process it could have taken weeks,’ said Greg Hartling, team leader on the project. Instead, Hartling’s team decided to build the application with Ruby on Rails. Six hours and one skipped dinner later, SurvivorsReunited.com was online. The first names were in the database the next day. —Chicago Tribune
For all of my professed admiration of Ruby on rails, I personally don’t think that easier and more productive CRUD application writing will shake things up. I personally care very much about writing applications in a tenth of the time, but using Rails is like listening to Jaco Pastorius. The real learning experience comes when you try to duplicate the feat.
If you want Rails to help you improve as a programmer, you need to look at the source code and figure out how to use Ruby to write Domain Specific Languages. Next, you’ll have to write a few DSLs to become immersed in how programming changes when you can write DSLs. Now you’re ready to look for a problem that is barely possible if you can solve it with a DSL.
I often find it hard to put into words why it is I enjoy programming in Smalltalk or Ruby so much more than in Java or C#. The most talked about reason is static versus dynamic typing, but I’ve always felt that that discussion misses the point. The friendliness towards internal DSLs is much closer to the essence of the difference. —Martin Fowler