With this article I am taking up the challenge in Pat Eyler’s blog On Ruby, which is: Write a blog about how Ruby on Rails has made you a better programmer.

I saw the light in January 2006. Yes, it was that late. Up until then, I’d been a Microsoft-programmer all the way. ASP taught me to do server-generated homepages. C# taught me to do object-oriented programming. But Ruby on Rails taught me that programming was an art, and not just a craft.

A friend I met in college introduced me to the open source world back in 2003. He tried to convince me that Linux and Perl was much better than my beloved Microsoft equivalents, and while I didn’t buy into that back then, it did widen my horizon quite a bit. Another good friend told me about Ruby on Rails when it was first made public. “I haven’t tried it myself, but it’s supposed to be really cool, and the guy who created it lives in your neighborhood.” I wasn’t convinced, but the notion of this cool, new way of developing web applications stuck with me, nevertheless.

I saw the light in January 2006. And by light, I’m not just talking about Ruby on Rails, but that whole new paradigm Rails is part of. Some like to call that paradigm web 2.0. For me, web 2.0 is more than just technology; it’s more than Rails and Django, blogs and podcasts. It’s about being open, giving and sharing stuff. It’s about really smart people not just trying to earn a lot of money, but also having a genuine desire to help other people getting better.

Ruby on Rails has made me a better programmer by showing me how easy, friendly, open and helpful things should be. Compare the Rails community to the ASP.NET community. The ASP.NET community is certainly not without people willing to share and help out, just look at Codeproject, but I have to say that I think the average Rails-programmer’s IQ is higher than that of the average C#-programmer’s. This is probably because the Rails community is smaller and attracts certain kinds of people, but I wonder if it will be watered down as it grows, or if we can continue to be nice and helpful to each other.

I had several fantastic experiences with Rails during the past year. RailsConf was awesome, not only because it had so many great speakers, but especially because everyone was so damn nice! Also Copenhagen Ruby Brigade was formed, and we were lucky enough to get the company of David Heinemeier Hansson and David Black to one of our sessions hosted at my workplace, Kraftvaerk.

So how has Rails made me a better programmer, technically speaking? Well, I can’t say the stuff about DRY and testing and DSL’s and so on was new to me when I started doing Rails – I mean; I’ve had The Pragmatic Programmer in my book shelf for years – but there are things about Rails that make it easier to do things right, and harder to do them wrong. I’m quite interested in some of the more … academic sides of Rails, like how it utilizes patterns, and an important example of that is the whole RESTful notion, which is “new” in Rails 1.2, but has been used by me and many others since it was in EDGE sometime last summer.

For me, it boils to this: More models with fewer actions. Preferably only the CRUD actions, index, create, update and delete. Why is this good? Because it’s convention. Example: Instead of /users/login you have /sessions/new/. It makes sense to me, and like many other things in Rails, it tells me do more of these conventions, also in my ASP.NET applications.

Has Rails made me a more productive programmer? Well … yes and no. I mean, the Rails framework is much more efficient and intuitive to work with than, say, the .NET framework, and Ruby does have a lot of clever ways of doing things in one line that requires 5 or 10 ten lines of C#. But … I also spend a lot of time browsing and searching the Rails API because I can’t remember the order of the arguments to call select. If I had intellisense like I have in Visual Studio 2005, I’d just start typing. I also find my Rails applications much harder to debug and install (deployment through Capistrano is a dream, but Apache, Lighttpd or even IIS to run the code is different!) than my ASP.NET applications. Okay, things are getting better and easier, but my point is; it’s not all good.

Nevertheless, Ruby on Rails has widened my horizon and opened my eyes, and that’s worth more than any productivity boost.

Bookmark and Share