   C# or C++?
  I have some free time and I am interested in learning more about C++ or C#. But I don't know what to learn? It seems like there is a lot more info coming out about C# and a greater amount of people are coding with it. Is there any more use for C++? If so what? Or should I just stick to C#? And if so why C# over C++?   
  Both are great, and new things ALWAYS have lots more info comming out ... but most of that info is just every company releasing the same info to compete for the same market dollar (there are over 20 books that show the basics in C# .NET programming, but only 2-5 of them are any good - and you only need 1-2 of them).I definately find C# to be a little cleaner to code .NET interfaces and simple components and controls in ...But I definately find C++ to be much better for modeling my more in depth logic and structures (because of the power of the wonderful STL library).So I use both all the time.And ruby as well :).   ;  That depends on how well you intend on learning them. I.e a certain feature for x language might not be worth learning the whole languange over if you don't need it.C++ has been around for a while and has more info out there for it. C# on the other hand, is relatively new but is showing potential. I like both, but I do agree that C# code is cleaner, if you keep it clean that is.My adivce is to try learning more about both. Plus some things you learn in one of the language may help you with the other. For example, I better understood OOP by learning C#, and apply it to my C++ stuff.   ;  C# is a wonderful new programming language. C++ is a time tested powerhouse. You can't lose with either one. When considering one language over another, it is never a question of which is better, but rather, which language is the best tool for the task at hand.In general terms, C# doesn't blow up on you as much as C++ does. C# is a much easier language to use than C++, however, you sacrifice a little bit of power when you use it. In general whenever your task requires high performance, it is a good idea to use C++.If you need to get the task done quickly, and performance isn't so much of an issue, use C#.I have to say that I have seen 3d games in C# that knocked my socks off. However, none of them were quite as sexy as the ones that I have seen made in C++.The main difference you will notice between the two, aside from obvious technical and syntax differences, is that C++ is a lot more relaxed about the way it handles things. What I mean by this is that it assumes that you know exactly what you are doing. C++ is unforgiving, and it will not warn you if you do something overtly stupid.On the other hand, C# will not allow you to make overt errors. It is more constrictive in some respects.I have used Java, C#, and C++ at my place of work, and I find that they are all good languages. Go ahead and try a google search on the differences between these languages.I have noticed that a lot of people make the assumption that Java, C# and C++ are completely interchangable, or vast improvements upon the previous language. This may have some truth to it, but technically speaking this is marketing hogwash.Java has been compared to C++, however, according to the inventor of C++ it is really much more like small-talk than anything else. See, http://www.research.att.com/~bs/bs_faq.html#JavaAlso, C++ is one of the most widely used languages, see http://www.research.att.com/~bs/bs_faq.html#number-of-C++-usersDecide what it is that you want to do, do some research, and get to work.The best of luck to you :)   ;  For game development, it seems that both are common -- It's not uncommon that C++ is used for the game itself while C# is used for the support tools.And much as I would rather something that's not M$-controlled and more portable, C# does seem to be better than Java.   ;  Not entirely. There's Mono which is for Linux, Windows, and Mac(?).   ;  I 100% agree with CplusplusDEMIGOD's first sentenceBut, I do want to mention one area where I disagree with conventional wisdom ...As I mentioned in my first post, I think C# is easier for making .NET interfaces (the .NET term, not the user interface), for make components, and for makings controls (visual user interface elements and forms)But When I say I find C++ to be much better for modeling my more in depth logic and structures - I am NOT talking about speed or performance.  I could care less about performance on most things, except in cases where someone chooses a completely inappropriate algorithm for the job at hand, I've only ever had 3 or 4 subsystems I ever needed to optimize for speed ...What I'm talking about is EASE OF PROGRAMMING.  It is way quicker, easier, and more powerfull / expresive to use the STL to model your problem, than to use the extremely weak .NET collection classes and interfaces ... and in C++, the typedef feature lets you model something today with simple types, and cleanly and safely grow the solution to custom classes in the future where approriate (and the great thing is, you don't have to guess where it is going to be worthwhile ahead of time).Now I admit, this might only be true now that I have many many years of C++ experience ... but the fact is (IMNSHO), when you are a complete expert at both, C++ is better at modeling a domain problem qucikly and correctly than C#.Most people talk like C++ is harder to use, but I don't usually agree, I do however agree that it is harder to learn.And I will also freely state, that I spend way more time writing C# lately than C++, when doing non-games ... but when doing games, I find C++ just kills C#in ease of development.But I recommend you pick whichever suits your fancy and stick with it for 2-3 months minimum ... then consider starting with the other choice as well, if you want to.  Eventually I almost guarantee you'll learn some of both.;  Why not use C++/C# in one language: Managed C++ w/ Visual C++ 2005 Express. Take advantage of both worlds in one program.   ;Quote:Original post by me22And much as I would rather something that's not M$-controlled and more portable, C# does seem to be better than Java. You made a typo, it's actually designed (but not controlled incidentally) by MS, aka Microsoft.   ;  I don't think we have come to a point yet where we can overlook the compiler and the runtime and performance implications.C# is running within a relatively new compiler and the intermediate language it generates executes through a runtime engine.Microsoft's Visual C++ is written to be compiled by a compiler that has incrementally been improved over time for performance and optimization such as the amount it will inline functions or the conversions of functions to assembly.Therefore, there are some peformance implications here. Granted, from the friends I have who work directly on the CLR, I hear that the longer that they work on the Common Language Runtime, the better it gets.I think we will see a paradigm shift at some point, but I think we are at the beginnings of seeing C# transform into a viable professional game development tool for the inner workings of a game and not just support tools.I plan on working on a C# game development project using Managed Direct X because of the rapid development I can do in C# with less indepth education. I program .NET every day so its second nature to me. Also, my project is not being built to work with tools that require a specific language so ultimately its what I'm familiar with.This basically means that there is no clear answer. There are advantages and disadvantages to both, but they both could get you close to your goal - developing a game. Learning ANY programming language will help you with others as they all share some basic concepts. One language may offer better performance while another offers readability and excellent organization and extensibility. It's really up to you! It also doesn't hurt to learn both either!Good luck!   