views:

93

answers:

2

Are there any 100% Microsoft developers out there who have ventured out into learning Ruby on Rails?

If yes, what was the learning curve like for you?

How about the time frame to be competent?

What were the hardest aspects of making the change?

+1  A: 

Assuming your new to MVC, the curve is fairly big. Here's what I think you'll find the sticking points to be.

-MVC: It doesn't abstract State handling like Web Forms does.

-Convention over Configuration: RoR gives you a lot of default behaviour without specifying anything. Traditional ASP.Net requires a lot of boiler-plate in comparison.

-HTML: No web controls in RoR.

-Ruby as a Dynamic Language: Terse syntax, duck-typing are a big change

-Deployment: It's tougher in RoR, although the situation is improving

-Libraries: You'll find yourself reaching for 3rd party libraries fairly quickly, which is something that some MS developers go years without doing.

Without much knowledge of what you know already, that's my summary...

Tim Hoolihan
A: 

FWIW, I was pretty much 100% a Microsoft developer from 1991 to a couple of years back, at which point I started developing with Rails, since it was a supported framework within my work intranet (ASP.Net wasn't) and I didn't much like the heavy-duty Java alternative.

Don't be misled into thinking that because it's Open Source, Rails is simple. It isn't. It's a huge framework and takes a lot of learning. Worse (or better, depending on your point-of-view) it changes much more frequently than a MS product, although less dramatically each time. There's another huge ecosystem of libraries, plugins and whatnot of varying quality that extends, modifies, enhances and sometimes just breaks everything else you do.

MVC is, I'd suggest, the least of your worries: it doesn't take long to understand the logic behind the framework, which in any case is more logical in a Web context than, say, Webforms, which is something of a leaky (albeit powerful) abstraction.

It's possible to get quite a long way in a short time: I'd say there's little to be lost and potentially much to be gained from trying it.

I'd also suggest not going for an IDE-based development environment - if you're going to make the break, make it clean. If you can't stand the notion of coding without a safety net, there are a few threads on SO recommending various options.

Snarky comments about smugness notwithstanding, there's a large, active community that seems to have a fair amount of fun. That's important: it's not just about a productivity gain, it's not just about using the language du jour, it's actually (mostly) fun to work with.

Your mileage, of course, may vary...

Mike Woodhouse