News for hackers. Stuff that matters.
Re:Is learning C# as a first language a mistake? by na85 on Thursday November 28, 2013 @06:41PM (#6817107)
I'm going to go against the grain here and argue that yes, it's a mistake.

An awful lot of novice programmers take years to progress from their "mother tongue" to their 2nd and 3rd languages, if they even progress at all.

I think marrying yourself to a proprietary language like C# is a mistake, not because of any particular C# language feature, but because it's yet another product of Microsoft's extreme case of Not-Invented-Here Syndrome (see for example netbios, active directory, etc etc etc). They have a compulsion to create proprietary, non-compatible versions of things that already exist, and you'll be handicapped if you only know C# and ever need to work on Not-Windows.

C# is basically Java with some minor differences (differences that will be immaterial to the novice) and Java has a far better degree of platform-agnosticism and would be a far better choice for a first language than C#, IMHO.

Re:Is learning C# as a first language a mistake? by nullymcnull on Thursday November 28, 2013 @07:46PM (#6817306)

  C# is basically Java with some minor differences 
Just about everyone I see saying this stopped seriously following or working with C# back at 2.0 or earlier. The changes since then have produced a very different beast than Java. Whether it has origins in NIH syndrome is entirely besides the point - MS was bolder with the language and the framework than Java's sluggish committees, and at the end of the day has built the better mousetrap.

IMO any novice who isn't Windows phobic would be better off learning it than Java, in part because it will expose them to a wider range of language constructs and capabilities (pseudo-functional bits, task parallel stuff, etc).

That said, a total novice would probably be better off dabbling in a dynamic language like Python than taking on either Java or C#. Nothing like a REPL for getting your feet wet.

Re:Is learning C# as a first language a mistake? by na85 on Thursday November 28, 2013 @08:14PM (#6817378)
Will novice programmers be using pseudo-functional bits and running parallel tasks? IIRC we're talking about someone's first language, i.e. they're at the hello world stage.

I don't see that person running parallelization schemes in their first 3 years.

Re:Is learning C# as a first language a mistake? by usea on Thursday November 28, 2013 @08:23PM (#6817403)
They will be exposed to higher-order functions very early on, as LINQ is one of the most popular features. You get early exposure to lambdas, functions as parameters, generators, and probably closures.

These are valuable concepts to be exposed to, and IMO provide an advantage over learning Java.

Re:Is learning C# as a first language a mistake? by laureny on Thursday November 28, 2013 @07:46PM (#6817311)
> I think marrying yourself to a proprietary language like C# is a mistake, not because of any particular C# language feature, but because it's yet another product of Microsoft's extreme case of Not-Invented-Here Syndrome

That's really inaccurate. Mono aside, C# came up with quite a few innovations of its own, and I'm saying as a 15 year veteran Java developer who would love to see some of these be added to Java (at least we're getting closures next year).

Also, learning C# will teach you a lot of constructs and concepts that will be readily available in other languages such as Java, Kotlin, Ceylon or Scala (and to some extent, even Haskell).

The "proprietary, NIH, blah blah I hate Microsoft" nonsense belongs on slashdot, not here.

Re:Is learning C# as a first language a mistake? by fleitz on Thursday November 28, 2013 @06:58PM (#6817186)
Really?

Linux, Windows, Mac, Android, iOS.

Considering that Java won't run on iOS (nor can you deploy java apps to the app store), I'd say C# is far more platform agnostic.

Re:Is learning C# as a first language a mistake? by Alphasite_ on Thursday November 28, 2013 @07:06PM (#6817210)
Well, there is RoboVM, and Java (or derivatives) run on just about everything wether it be you sim card or credit card to high end clusters.
Re:Is learning C# as a first language a mistake? by fleitz on Thursday November 28, 2013 @07:42PM (#6817293)
Same with C# http://www.adafruit.com/products/336

To be honest though anything non-x86/ARM is pretty esoteric these days, and realistically if you're going embedded C is a far better bet than anything else. (except maybe forth)

Re:Is learning C# as a first language a mistake? by foohbarbaz on Thursday November 28, 2013 @08:25PM (#6817408)
In practical sense .NET does not exist outside of Microsoft world. Most of those who mention Mon have never used it (or non-MS environments for that matter). Don't waste time on "Microsoft-Java". Either learn Java, or better yet start with Python.
Re:Is learning C# as a first language a mistake? by jsmeaton on Thursday November 28, 2013 @09:52PM (#6817646)
Calling C# "Microsoft-Java" is about as accurate as calling Go "Google-C".
Re:Is learning C# as a first language a mistake? by computerslol on Thursday November 28, 2013 @07:04PM (#6817202)
The differences aren't so minor. I could write a list, but someone has already done that: http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
Re:Is learning C# as a first language a mistake? by nahname on Thursday November 28, 2013 @07:27PM (#6817258)
That is a huge list that makes C# look amazingly better than java. Was this sarcastic?
Re:Is learning C# as a first language a mistake? by weaksauce on Thursday November 28, 2013 @07:38PM (#6817279)
I have had my share of Linux, windows, and OS X. Currently I use OS X for the majority of my daily tasks but I am not dogmatic about it. I like all of them and think they are all good in their own ways. Right now the scale tips a bit to OS X but it could go any way.

I have programmed in all three environments professionally and I know many different programming languages at least well enough to build a basic GUI.

I say that to preface what I am about to say... Java is not the worst language I have used but it's up there. I was a professional c# programmer back when it was in its 1.1 days and now I have revisited it for another professional project and it has improved to the point where I wish it was native on the Mac and on Linux without mono. It's what c++ should have been.

Edit... I have used java quite a bit and it's a terrible language.

Re:Is learning C# as a first language a mistake? by mortyseinfeld on Thursday November 28, 2013 @08:17PM (#6817386)
C# is basically Java with some minor differences

That's absolutely not true, and everybody that has programmed in both languages know that's not true.