04 April 2008
It's been a year now since I've coded ASP.Net in anger, but here are some Rails & .Net ramblings...
From a business point of .Net lowers the risk of project because it:
- has a large pool of developers
- has been proven to support large commercial applications
- has the backing of a major corporation whom you can have reasonable confidence will still be around in 5 years.
These are all good things & it's quite a rational decision to use .Net.
My feelings on .net
- C# & VB.NET are a right bitch to programme in compared to ruby - so.much.code.to.do.simple.things. Yes, there is intellisense in Visual Studio.. things would be close to impossible without it.
- .Net is a mammoth framework. There are so many libraries. Even after coding for a year, I still spent almost 30-40% of my time reading documentation. Socket programming is a complete nightmare.
- Visual Studio produces rubbish html view code. If IE is your only target browser, then you can get away with it. But your designers will probably use Mac's & keep asking you why their lovely design now looks pants; oh dear.. more css tweaks. Its amazing how much time disappears this way.
- executes quite fast and is really stable, as long you have not done something really, really stupid.
- has well proven upgrade paths.
- you have to make a concerted effort to do things in an agile way [BDD, code testing, etc], its just not as natural as rails & there is no MVC [coming in ASP.Net 3.5, but even that looks like hard work]. Although we intended to do some automated code testing, due to rapidly approaching deadlines we skipped this bit; leading the first few weeks of release being plagued by lots of bugs.
- is easy to recruit for
Having said all this.. you won't go wrong going 100% .Net. Your job is safe.
My feelings on Rails
- after the 2-3 month learning curve, I was 3-4 times more productive - not just not looking at documentation - ruby is just faster to get things done.
- Ruby is optimised for programming rather than computer performance.
- is easier to produce well tested code [the MVC nature of rails really does make Agile processes easier to implement].
- is not difficult to host & scale, just different & I think involves much less brain power than scaling out .Net. The framework is just one small part of the whole. Look at www.joyent.com & www.engineyard.com for examples of how to do things.
- If anyone says to you that they have heard "Rails does not scale" you immediately know that they have not done any independent research, put very little intellectual effort into this thought, and have probably put just as much intellectual effort into everything else that they say. Treat their advice with caution.
- can happily talk to legacy databases - its just a bit more work
- does not need visual studio [w00t..!!] I use Netbeans on Vista & Ubuntu.
- Major vendors, Sun, Oracle, IBM, & Microsoft all have projects to bring ruby & rails into their product suite.
- resourcing is a problem; there are some really dodgy contractors & companies who say they do Rails out there trading on their names [yes.. I mean you.. you know who you are]. Reference check - more than once.
- I think its fair to say that 2 very good rails guys [they all seem to be guys with longish hair, goatees and very pale skin..why is that?] will build you a web app at about the same speed as 4-5 average .Net guys [I know its a horrible and unfair comparison] - but my point is you should think of it as a higher cost per resource, but each resource will give you much higher value. Problem will come when you need to resource your team permanently & you may have to recruit & train.
A great symbol of the differences between managing .Net & Java, and Rails developers is the kind of conversations you have. With .Net, & Java, it tends to be very technical, what's the best way to structure this, what is affected with this change, which library should we use..etc. With Rails developers almost 100% of the time talking about business logic.
Rails is great for building and maintaining SEO friendly web apps. It works really well. And if your programmers are good, you will get to market faster than .Net & Java with equivalent resources. To me these are the reasons to choose rails, if your building a web app.
In a corporate environment, It still seems slightly irrational to recommend Rails. The management challenges are definitely higher; resourcing, convincing risk adverse management, then continually defending your choice from interested parties.

Trackback URL