Hey guys, i don't know if here's the best place to expose my question but here it goes.
I aways had an interest interest in learning different languages, and today i know the basic of many of them, but now i'm trying to stay in one very language and get deep in it, my first choice was C++, but searching around the internet i'm getting more and more confused about the best language to learn.
My purposes are develop to windows platform in first place, desktop apps, with easy user interface, program for the people. open source.
Actually, my confusing source is C# .NET, and the .NET platform at all, they say C# is the C++ evolution and all that stuff...
the language is aparently great, but I heard some critics about the disorganization of the .NET platform.
So, knowing my purposes, what you guys think should I do?
sorry my bad english. thanks.
C# is a completely different language from C++, and other than certain aspects of their syntax, the two languages have very little in common.
Saying C# is the evolution of C++ is also completely inaccurate, as C# isn't even in the same genealogy as C++. C++ comes from an old family of imperative procedural languages dating back to 1958 with ALGOL. C# on the other hand is basically a Java rip-off, and Java is in its own family of purely object oriented (actually, Java is not quite purely OO because it has primitive types), bytecode-based languages.
On the other hand, saying C# is the evolution of C++ is like saying the screwdriver is the evolution of the wrench. The two have different design goals and different purposes.
If there's a language that is the evolution of C++(98), that would have to be C++0x.
Anyway, if you're going to write solely for Windows, C# may be the better choice. It depends on which side of the performance-safety sliding scale your application is. With C#, you won't have to concern yourself with managing memory and bugs arising from mismanagement, but you'll have a performance hit. C# also limits you to Windows and a few other platforms; you can write C++ and specially C programs that can run basically anywhere and will last a very long time. C and C++, being standardized by ISO, are very well-received in the open source community, while C# is seen as proprietary crap. If there are two identical implementations of a piece of software, one in C/++ and the other in C#, the one in C/++ will be more popular.
Yeah, I was totally upset when some guy the other day tried to tell me C# was the succession of C++. I told him an idiot, that it's part of the .NET framework, and doesn't have the flexibility or portability of C++.
C# has moved to other platforms but they are NOT supported by Microsoft and is compiled with open source projects. I personally see absolutely no point in this at this time and I don't see why you would want to code in C# in the first place if your going for cross-platform capabilities.
Other than that, my opinion is that C# is proprietary crap that needs to be thrown away and stop diminishing languages that are more capable and secure than itself. This irritates me heavily that anyone would want to code in C#.
I had this strange feeling that C# wasn't nice as it appears to be. I'll be (back to) learning C++.
I'm using the "C++ Primer" book, anyway, thanks helios, for the great info, it helps me, and thanks computerequip for exposing your opinion.