I’m an ex-C# guy (7 years) doing Ruby (2 years) with a little bit of Java thrown in. My company is currently finding it tough hiring Ruby devs (no different from when I was hiring C# devs) and subsequently we’re casting the net wide enough to include C#/Java/etc. guys that want to change to Ruby. We have a standardized technical test that asks the candidate to create a web application in 1.5 hours in the language of their choice.

Coming from a C# background, I’m continuously shocked at how poorly the C#/Java guys fair on the test. Most of the Ruby guys use Rails and a reasonable percentage nail the test but none of the C#/Java guys have even come close to about 10% of the full test. I don’t think it’s because they are necessarily bad coders. Some of the C# code reminds me a lot of what I used to write with IoC containers and design patterns galore. The point is that I think the language and platform ecosystem is so much better that it gets out of the way and let’s you solve the business problem.

Is the test biased to quickstart projects? Possibly. How often do you need to click ‘New Project’ in Visual Studio, anyway? After thinking about it, it just doesn’t seem that way. There is just so much overhead in doing things ‘the right way’ in C#/Java. Tests shouldn’t go to the database.¬†You need interfaces everywhere to inject¬†your repositories into services or your services into controllers. This is not a one off thing. You’ll have to do this everyday to keep your code base clean.

From a developer productivity point of view, it just seems like you can get further, faster with Ruby/Rails then with C#/Java.