… Ruby on Rails.
That’s right, I’m doing most of my off hours development in Ruby on Rails now. Of course you don’t care, and why should you? You aren’t one of three people who know me. I just think it’s very editorial of me to address the crowd as if I’m a famous .NET celebrity. And by “crowd” I mean you.
Speaking of, what are you doing here? Anyways, let me continue with my story…
Somewhere around, um, whenever the hell .NET beta 1 was released I started poking C# and pokable it was. It was also very huggable and cozy, fast and cute and when combined with Visual Studio 2003 it was the best thing since sliced bread. I swear, if I could toast, put Nutella and banana on C#, I would do that in a second.
A few years have passed, many web sites have been built. A pattern of development has emerged which can be summarized in 3 easy steps.
- Figure out what your site should do
- Built a base framework
- Build a site on top of that framework
I think it’s a no brainer to see what I’m driving at. The dreaded, but unavoidable step number two. And it isn’t like you can reuse the framework you wrote last time around either. By the time you are done with one project, you probably realize that the framework you wrote isn’t as nice and flexible as you have invisioned it so next time around you going to do a much better job.
If you are still reading, I have got to give you some credit – I’m not a very easy person to read… or talk to.
Moving on. The framework problem brings up a whole other issue – procrastination. How many times have you found yourself going on to create a set of classes, or a library to do one simple thing? Oh, it must be flexible! What if in the future I want it to be able to do this thing other as well? Soon after, instead of working on the project, you are working on a library to support the framework that will in turn power the project. Been there, done that.
No, I’m talking about Ruby on Rails. Har, har, har! That was hilarious! Sometimes I kill myself… By the end of 2006 Rails was the it thing to learn, hype is at its peak, DHH is god amongst people. It was enough of an eye sore that I finally decided to give it a try.
A few very painful days later I finally conditioned myself enough to type “end” instead of a curly at least half the time. Just like everyone else, I start with the infamous “omg, look, I have can write a blog in 15 minutes” video. Stuff like this can give anyone who spent enough time writing SQL code wood. It’s like developer’s porn with an extremely irritating voice narrating it and no music.
After about a month of spending an hour or two every day I no longer had to look in the manual to help me with every other line. It’s hard enough to pick up development in a completely new framework, it’s even harder to do that in a language that I’ve never seen before. Plus, the fact that my editor doesn’t look as pretty as the on in that video makes it so much worse.
Are you still reading? Holy crap, what is wrong with you? Don’t you have better things to do?
Where was I? Oh…right, by this time, being a good little developer that I am, the plans of the next big project that will make me filthy rich or just rich are in motion and of course I’m writing it in Rails in my spare time. All of a sudden, a scare article comes out claiming Rails to be a slow dog… or dog slow… or both. I panic and decide to go back to ASP.NET.
Why am I telling you all this? Because this was the turning moment for me. By that time my Rails application is was still pretty small, maybe 6-8 tables, a couple of nested trees, some registration and a few test cases. Nothing special. When I sat down and created a new web site in Visual Studio .NET, I started off by planing my framework.
Holy crap, I’m writing a framework again! But that didn’t stop, oh no! What stopped me was when I a few days later I had to figure out what I need to rewrite in .NET to carry over few features that I have in my Rails application. The thought of having to wire models up with SQL made my nuts hurt. What am I going to do about all the stuff I get for free from installing a couple of plugins and gems? Do I have to rewrite all of it or will I find something to replace it? Will I have to struggle to integrate it?
This is getting pretty long and I think it’s time to split this up into another post because I’m want to talk about fundamental differences between ASP.NET and Rails.