For the Love of Rails..
Posted on Sunday, September 30, 2007 by Gaveen
Most people who know me personally know that I'm an Open Source enthusiast. And they probably know that I'm more of a SysAdmin than a developer. Well, thats quite true. Eventhough I enjoyed programming, my main interest was always System (especially Linux) administration. However in the last 6-8 months aor so I've started getting more and more into Open Source development. A major breakthrough for me was getting selected for Google Summer of Code 2007, to participate in Nmap! (Nmap is much like a grail among SysAdmins :) Unfortunately my persoanl circumstances didn't allow me to finish the work with them. Family matters and other things piled up and I have to give up. Nmap people has been very supportive though and the same was true about the Google people. So after some weeks here I was trying to look more into Nmap, Metasploit and other things. Then I realized that I could give sometime to this Ruby thing which I heard was on Rails or something.
Here I am now, after a few months. Although my software developing exposure hasn't seen a lot more, I've ventured into it. And I have to admit, that Ruby as a language and Rails as a framework has changed my view about the whole software development arena. So what's new? Another fanboy article about Ruby on Rails? Not really. I just want to thank Ruby on Rails. :) If you are offended by Rails please skip this post. I promise there are couple of posts about other things coming up shortly. :)
First I thought of following J2EE and web services, because I knew virtually nothing about them. You know, I can't stop myself getting interested in new technologies. (For example I've started with the Xen tools in Linux and got to like it very much........ Ok, not so new :). But before I did that I gave Ruby a try, and started using Rails to create simple things (which is what I still do. :) And what else? I simply love it. Ruby as a language helped me grok more of OOP concepts. And when I got to try Rails, I just had to hold my breath in amazement (and amusement too).
I always felt that business application level programming was messy, tedious and boring, partially due to the way we were taught about them. However after Rails, I just feel it's not that bad afterall. I'm not saying that J2EE is a bad platform, not even being funny as RailsEnvy people. :) Just as a user, after using Rails I feel, "why the hell it has to be more obscure or tedious?"
Rails uses DRY and Convention Over Configuration concepts. DRY means don't repeat yourself. And Convention over Configuration means unless you make specific changes, there's no need to worry about grunt work in configuration files, XML and etc. Everything has a conventional way of doing it. And if you choose to differ you may well do it.
The scaffolding is great to learn Rails and also give a good idea of how to organize a web app. And migrations!!! Just have to say wow. With migrations one can use the database without worrying about changing database level things. Object-Relational mapping is implemented using a design pattern called "Active Record" opposed to the hibernate technology in Java. With these thing, a Rails developer don't have to worry about the underlying database or the DBMS for that matter. Now, doesn't it sound good? All in all, I've so far loved the learning process, and I have a feeling that I'm going to remain so. For Java, .NET and other framework users, I'm not asking you to throw away your tools. Just give Rails a fair try, totally worth it.
More I use Rails, more I realize that it isn't a toy. It's a serious framework which is giving other frameworks a serious run for their money. As far as I can say, you cannot appreciate the power and ease of Rails without getting your hands dirty with some coding.
For a quick peek of Rails try Rolling with Ruby on Rails short tutorial.
