Sven Groot said:
vesuvius said:
*snip*

Oh I agree with that. CS students should learn about the unmanaged side of things too. Whether it's sane to start out with C++ though, I don't know. My university was strictly C++ in first year, and way too much time was spent by people trying to figure out C++ the language rather than the problem they were trying to solve. This was even more apparent when I was assistant for that very same first year class a few years later.

 

However, the main issue I was getting at before is that you said you exclude C# because it's managed, yet you did put Java on the list in an earlier post.

I tend to agree that since C# has introduced several new paradigms (functional, declarative, dynamic, etc...), it has become the best language for the majority of projects out there.

 

However, with all these new capabilities comes complexity.  For a CS student with no experience with programming languages, C# is generally (IMHO) not a good first language.  The language is so powerful and broad now that it is hard to know where to start if you've never been exposed to programming.

 

C# has had a flood of innovation (LINQ, lambdas, dynamic programming, extension methods, etc...).  Not to mention all of the additional features that C# 1.0 had over Java (delegates, properties, etc...).  The truth is that to you and me C# is beautiful but to a beginner it is simply daunting.