I am a web developer working mainly with C# on ASP.NET (Webforms and MVC)..

I have worked previously with PHP and Other Frameworks and languages of the sort..

I am currently looking and focusing all my development on 2 platforms..

One Proprietary and Industry Class Framework (ASP.NET MVC)

and

One Opensource and Free Framework (Insert framework of choice here)

I have no experience with python or ruby but would like to learn one and use either django or rails..

While i understand both are very different from ASP.NET please advise me which one would be the smoothest transition.. (or the one most worth the migration pain is better!)

Thanks

Daniel

share|improve this question

62% accept rate
feedback

5 Answers

I am a .NET guy and also worked on PHP for a couple of months. At present I am learning Ruby and after completing basics, I am going to move on Rails.

I would suggest you to go with Ruby and than Rails. Career-wise also, Ruby guys are in demand these days, at least in my country.

share|improve this answer
Yeah.. I'm impressed so far with both! am leaning a bit more towards django now though as python seems like a bit more of a swiss army knife language where ruby seems to be popular mostly in web circles. – Daniel Upton Nov 16 '10 at 14:47
feedback

With open source frameworks, I would choose between RoR and Django. Just stay away from anything PHP-based.

First, I would say learn the base language first, to an extent, and go with the framework built on the language you prefer. For example, I do django because I learned python, not ruby. I tried ruby when I was hired for a rails project (for frontend work, but nevermind), and it just felt too... "fluffy" for my taste.

Second, there's the issue of documentation. Django's docs are always up-to-date (keeping them so is part of the django development process) on 99% of topics you would want to look up, and are fairly easy to follow once you get the basics. The other 1% of things you would want to look up are generally completely undocumented, derivable from the source or else not possible (often possible with a third-party app, though, which are easily found). I can't speak too much for rails, but I was able to find little usable documentation in my short foray into it; perhaps I'm just too used to Django's docs.

Finally there's the development environment -- you're likely to have multiple projects on one machine, possibly with conflicting dependencies. With django/python, you get virtualenv and pip as part of the python dev process (or at least you should). These tools work very well for setting up secluded environments for separate projects. Ruby doesn't have any standardized tools for this purpose, but there is a gem called sandbox that worked well enough toward this purpose when I used it; IMO though, it seems as if it has to fight against ruby's natural behavior to get the concept to work. It looks like it hasn't seen active development in a couple years, unfortunately.

Other factors to consider include mass of third-party apps for a framework and size and attitude of the community behind a framework. In the end, though, I guess it comes down to your comfort level among the languages you know and personal preference.

And I will freely admit that I'm rooting for django.

share|improve this answer
Can you suggest any screencasts on python and django? kindof like tekpub.com and peepcode do for rails? – Daniel Upton Nov 14 '10 at 12:19
@Daniel unfortunately, I don't know of any screencasts, myself. – eternicode Nov 15 '10 at 15:16
Ah.. Well I installed django on one of my dev boxes and sofar it's been less pain and magic more logic and understanding than rails ;) will keep you posted – Daniel Upton Nov 15 '10 at 22:59
Python / Django is more readable and understandable than Rails for someone who has been doing .Net, for sure. Less magic indeed. However, you already know a language like this - if you want to write the same STYLE of code you could just do ASP .NET MVC and work with something you are experienced in. I think you would grow more by doing Rails :] and hopefully have some fun in the process. – Ryan Doom Nov 19 '10 at 2:24
"All developers should learn at least two programming languages. It makes you a better developer in general." ~ Author unknown (and most certainly paraphrased) – eternicode Nov 19 '10 at 5:50
feedback

I did ASP, then PHP, now ASP .NET for the last 5 years, dabbled with Python now I'm doing some RoR. Don't learn something 'similar' just to get outside of the MSFT stack. Check out Ruby on Rails, it's a different mindset, and you will learn a new way of thinking about a lot of things that will make your ASP .Net code better.

For me Python / Django felt much better and easier. Less magical, but Ruby on Rails is pretty amazing and has a lot going for it.

I would suggest you check out www.tekpub.com where Rob Conrey a MSFT .Net guy does a ton of tutorials including video tutorials on RoR 3.

share|improve this answer
Yeah.. I actually have an account at tekpub.. And watched the first couple of rails 3 episodes.. Are they gonna bring out more? Cause there was only a few there.. – Daniel Upton Nov 14 '10 at 10:47
feedback

I've been learning rails and loving it. The pain point with it is the documentation - version 3 of rails has just come out, and not all of the documentation you will come across will be up to date. However, you can pretty easily get by.

That said, I'm loving it. Ruby is a very elegant language. You can get a feel for rails by reading through this guide: http://guides.rubyonrails.org/getting_started.html

share|improve this answer
feedback

For a .Net developer try to start with www.pradosoft.com/ prado framework, it's PHP framework which looks exactly like ASP.NET ..

try it

share|improve this answer
feedback

Your Answer

 
or
required, but never shown
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.