Since I can't push myself to doing something more useful, such as developing one of the small open source projects I'm involved with, I decided to muse on how Rails has made me a better programmer. Besides being an interesting question, writing up my thoughts might win me a book.
So, what's the outcome of my musing? What should I be thankful to Rails for, regarding my programming skills?
Short answer: increased awareness to the significance of syntax and the benefits of literate programming.
For those of you who aren't quite sure what I mean by literate programming, here's a quote from one Daniel Mall that summarizes my intent quite concisely:
Literate programs are written to be read by other software developers.
Program comprehension is a key activity during corrective and perfective maintenance.
So how has Rails done this? It's not the only source of influence, of course, but I'll tell you how I see Rails having contributed to the increase in my awareness to the subject.
It hit me when I was reading some Ruby tutorial in order to get me started with Rails, the latest tool that all the cool kids were ranting about, and saw a line of code similar to this:
5.times { |i| puts i }
In my language-with-primitives ridden mind the thought of being able to do something like that hadn't even crossed my mind.
Ok it had, when seeing Smalltalk for the first time, but I'd also forgotten all about it as soon as I'd stopped reading the said Smalltalk tutorial. This time it was different. This time it was going to be the real thing.
And it was, to a large degree.
Getting deeper in my plunge into the world of Rails, I continued seeing brilliant syntax. Syntax that just made sense. Syntax that took the power of a programming language and tamed it to produce readable, usable APIs. APIs that surprised me the right way.
"Now let me see if there's a... Wow. They must be reading my mind!"
Suddenly I was trying to read others' minds as well. I was starting to think more and more in terms of the user of my code, no matter how deep inside the guts of a system that piece of code would be. (Although to be fair, test-driven development has had an even bigger influence on this thinking for me.)
Thanks, Rails! You've made me a better programmer.
And thanks to the hacker that could be mistaken for a Gap model plus the dozens of others who've contributed to making me a better, more literate programmer through Rails.
I'm sitting in a hotel room today, trying to get back to good health for the rest of the week. In my current condition, there's not much energy to do too creative stuff so I've been mostly catching up with weblogs and forums.
Somehow I happened to find workingwithrails.com, a web site for helping the Ruby on Rails community "connect".
In general I like ideas that help a community hang together but I am having trouble deciding whether I like or dislike this popularity contest.
LinkedIn and other social networking sites do something similar but the above list feels somehow a bit in-your-face.
Am I becoming too American?







