views:

569

answers:

8

Up till now all my programming experience has been desktop development (mostly C/C++ with OpenGL/DirectX) but I'm interested in trying my hand at some web dev.

The two directions I'm considering are Ruby on Rails and ASP.net.

Which is most widely used?

Which would be a more marketable skill to have?

Thanks!

+1  A: 

Learning Ruby will help you learn a different way of thinking about programming. It will help you become a better programmer, even if you determine that it's not a language for you. The same applies to several other languages (including Python). There are fewer job opportunities for Ruby developers.

ASP.Net is a fairly pedestrian way to develop fairly pedestrian webapps that don't really challenge how you think as a programmer. Job and consulting opportunities are more common.

From this point, it's your call. I chose Ruby six years ago.

Austin Ziegler
+1  A: 

If you are planning to do enterprise business development, then ASP.NET wins hands down (IMHO).

If not, RoR would definitely add to your breadth of knowledge.

John MacIntyre
A: 

.NET platform, without a doubt.

Pick up RoR as a secondary.

Paul Nathan
+4  A: 

PHP, Ruby On Rails, ASP.Net, or Java.

It's a religious choce and it depends on who you ask.

Everyone you ask will give you a different answer.

You should ask yourself how you want to work, PHP java and ASP all let you write markup that is interspersed with code or code that writes the markup for you.

To be honest it's subjective and no one will be able to give you a straight answer.

Given your two options ASP is probably a better choice for industry though, there is a lot of money in it and C# is close enough to C/C++ for it to be readable.

Omar Kooheji
+2  A: 

I spend most of my time doing ASP.NET development and recently I had taken a turn against it due to the difficulty in really testing my apps. Like lubos hasko outlined above, with ASP.NET MVC, LINQ and the new features in C# and even the ability to write .NET web service that can be consumed by Silverlight, I have gotten excited about it again and think you could do well getting into it. That said, I have no experience of Ruby but after some of the comment on here, I think I'll have a look at it.

Skittles
A: 

As a C++ you probably won't like the nature and character of Ruby. You might even hate it. Type safety and strictness is an issue of importance for most C/C++ programmers. If you move into a type-free, "dynamically maliable at run time" kind of environment like Ruby, it will feel extremely sloppy.

C# would be the much easier move, from a language and thought-process standpoint. I would not recommend doing classic ASP.NET development anymore. So-called WebForms are quickly becoming outdated and outmoded. The 4th rev of Microsoft's MVC framework just got published a few days ago, and it is pretty terrific. This is the way to go.

So why not just use Ruby on Rails? Why use Microsoft MVC? There are very good reasons why you should.

  1. A strict type safe compiler
  2. Fully compiled code leads to speed. All of your code is fully transformed to X86 machine code before it runs,
  3. High performance. C# is very very fast. Ruby is very very slow. C# approaches C++ levels of performance. Ruby is slower than Perl, Python and Lua. There is a very large performance gap.
  4. You get a rich IDE. The thing I personally can't stand about RoR is that you are mostly stuck in a plain text editor and a command line console. ASP.NET MVC means access to the power of Visual Studio
  5. RoR doesn't scale. Microsoft MVC does.
  6. I like the simplicity of Microsoft Test
  7. I haven't gotten far with it yet, but Unity seems like a nice AOP IOC. I've gotten farther with it than with Spring or Windsor.
David Leon
5.) Not true, RoR scales exactly the same way as Microsoft MVC does. You might need more servers for RoR (because of performance issues) but then again, RoR servers are much cheaper because you don't need to buy Windows Server licenses for each one. Otherwise, I still agree with your answer.
lubos hasko
The problem with this answer is that you are comparing the advantages of ASP.net with the real or perceived disadvantages of RoR.
allesklar
"RoR doesn't scale" - You are joking, right?
Charles Roper
You don't need windows server to run asp.net Theres always mono... And common perception is that Ruby doesn't scale. Much of Twitters instability is put down to being rubys fault... I've never used Ruby and I'm not one to judge it before I've tried it.
Omar Kooheji
@Omar I recommend reading a serious article about the perf. issues of Twitter. They are due to the database usage patterns, which doesn't play well with sharding. Any popular member (1000s of followers) has to hit an arbitrary amount of other shards when they post. That's the source of the problem.
webmat
@Omar, Mono is still a toy. They don't have any notable deployments as of now. Also ASP.NET is not standardized under ECMA and is probably covered by some MSFT pattents, so from legal point of view, Mono shouldn't even bother with ASP.NET at all.
lubos hasko
David Leon
@David, without wanting to get into a flame war with you, the assertion that RoR does not perform as well as other frameworks does not mean it can't scale. :) Objectively speaking, to say it "doesn't scale" is factually wrong. E.g., http://rails100.pbwiki.com/Alexa+Rankings
Charles Roper
+4  A: 

Why don't you take a few days or a week to experiment with Rails, just for fun? You might, like many other devs before, find a real liking for it and 'fall in love' with Ruby and revitalize your programming interest. If not you just embrace ASP.net which will feel more natural to you anyway.

Other commenters have not mentioned that the number 1 advantage of both Ruby and Rails is 'pleasure of programming'.

Alsa these days talented Ruby programmers are in very high demand. There is much more demand than supply. You can do the math as far as earning potential.

allesklar
For the morons upvoting this, check out monster.com to see how "high demand" ruby is compared with .net or java. Ruby: 530 TOTAL listings. .Net > 5000, Java > 5000.
Chris Lively
They may have been upvoting it for his first two paragraphs, like I did.
Charles Roper
So, people are up voting an answer which doesn't satisfy the question: "Which would be a more marketable skill to have?" How typical.
Chris Lively
+1  A: 

I would suggest taking a look at the Rails for .NET Developers book before making your decision. At the very least, have a trawl through the Softies on Rails blog.

Beware of the "there are more .NET jobs around" argument. That may be true, but in tough times (i.e., now and for the next year or two), you're probably going to see more .NET developers fighting over fewer and fewer jobs. Lots of jobs in good times equates to lots of competition in bad times. So it is worth branching out and learning something new. What is key, in terms of marketability, is staying agile rather than sticking religiously to one technology.

Charles Roper