Now, here's my take... if you learn ASP.NET/C# you will have marketable skills in most non silicon valley markets that you can use as a consultant or employee as need be. There are significantly less corporate jobs that are RoR than there are C#/ASP.NET.
Also make sure you look at Python/Django (which is normally what is argued with RoR).
Good point in the second to last paragraph. Do you want a corporate job? If so, consider .NET or Java. Do you want a freelance/startup/independent job? You may find the Ruby (or Python etc.) community more supportive. There are exceptions to each - there are .NET startups, and Ruby is making inroads at lots of big corporations - but your career will likely have a different flavor depending on what you choose.
Well put. A problem many who are starting out face is contingency if things go wrong i.e. startup fails.
It is easy to say do another one, but without funding/investors this can be hard and people must eat and bills must be paid.
Hence with .NET being the choice of most businesses (as most they are already tooled with MS products etc), going .NET initially also allows the fallback position of easier consulting/contract work at times when money is needed.
However, ultimately the choice should be on what allows you to meet and iterate upon your objectives in the fastest way possible, as the best way to stay live is to be able to adapt and change and exploit markets rapidly. Hence with this in mind, I would opt for Ruby as imho it provides a better grounding into architectures and pratices that will best serve you in both the short and longer terms.
If you can write in C#, you can write in Ruby --- Ruby is a less complicated language. There are startups that won't hire you unless you have "3 years of Ruby experience" on your resume, but you wouldn't want to work for them.
We looked for Ruby devs, quickly gave up, and wound up hiring a Lisp hacker. Our runner-up was a sharp C# hacker.
There is a huge amount to programming .net that has nothing to do with the {}'s of C# and all to do with the .net framework (which won't translate to Ruby at all).
That said, a good/sharp programmer is more than a monkey slinging code so they should be able to work well in any language.
I think the mentality that programming has more to do with knowing your framework's features than it does with --- you know, how to program and stuff? That's part of what pisses people off about Rails devs.
The reality is, learning framework features is no different than learning how to mail-merge with your word processor. Sure, it's important. But it has nothing to do with whether someone's going to do a good job coding for you, 2 months in.
1. Look at the MVC framework for ASP.NET 3.5 as it makes ASP.NET act more like Rails
2. If you're going to use ASP.NET, use 3.5 so you can use LINQ and all the new 3.5 features. It makes your life WAY easier.
3. There is no real scaffolding for ASP.NET like there is in RoR. Well there is a kind of like it thing that was put out (http://www.hanselman.com/blog/PuttingASPNETDynamicDataIntoCo...).
Now, here's my take... if you learn ASP.NET/C# you will have marketable skills in most non silicon valley markets that you can use as a consultant or employee as need be. There are significantly less corporate jobs that are RoR than there are C#/ASP.NET.
Also make sure you look at Python/Django (which is normally what is argued with RoR).