If you ever involved in web development, then you must be knowing the history of it. Once upon a time there is something called CGI. And at that moment there are static html pages.

Only few part of page is dynamic. Then things changed, ASP came. Server access become so normal and easy. But still there is a lot more work to do. And main issue with them is code is not arranged and coding style is not suitable for big projects.

One can create dirty few pages but creating sophisticated big project is almost big no no. Same is true with other part of languages too. Languages like Php , JSP etc.

At that moment, something called Ruby on Rails took birth. It was extracted from Basecamp. And then it took the world like anything. Even today it is so popular.

I am proper Microsoft Developer. And I know Asp.Net MVC(at least my Resume says so.). I never felt I should learn any other thing than MVC. It is good, better than Web Forms (at least for me). And I know how to do data in and data out.

What else can be needed???

The answer is many things. My views are hammered by Rob Conery with one of his video at NDC. Then I thought there is no harm in learning new thing.

First I start with MVC thing. What things it claims to solve? It provides Separation of Concern in your code. But in any framework it is not strictly imposed. Specially in Asp.Net MVC. Means there is no proper guideline on how things should be. And you can find hell lot of opinion for that. I don’t mind any of them but one thing I mind that culture is missing there. Culture that provides starting point. For the new user it will be damn tough to start things.

If I give a example, in Ruby On Rails things with 7 operation will stay in one controller but in MVC I can do it more than that. I can put every JSON operation in one controller. One may argue that it is issue on my side but I will say it is issue on our culture side. No one forcing me to do it right things first. Obviously I need freedom to do things in my way but first I like to learn right way of doing things.

Even though there are many copy of ROR, but culture is not copied properly. And that makes issue sometimes. And that even not allowed to rip the benefit of using MVC. So, it will be like that I am creating controller and writing code in View. Or model is there but I still don’t know why?

Or I can say I don’t know how many models are there??? My MVC then became (M^n)VC. And then all that mapping and stuff.

Am I using MVC to make things easy for me or make things even worst for me? This question always bugs me till I learn (I still not no where near good user of ROR) ROR. That helps me a lot to cultured my MVC code. At the end of day ROR is father of all the MVC framework out there.

You take it .Net, Java, Node or even sucky Php every damn technology have their version of rails. If you have that much things from rails, then there is no need to shy away from learning it.

I learned from Tekpub, you can also try it. Or you can try Peepcode too. Both are quite good at teaching specially rails.

I am still a .Net developer at least as of now, but still it clears out many things. And with that it is also true that rails is not a silver bullet. If you are creating back end architecture to provide service you can try out different things. Even though rails way works but still you are not bounded.

But learning is not option I guess. If anyone related to web development must learn or at least once give it shot for Ruby on Rails.