Quote:
Then why do all the big name developers use C++? Or maybe that isn't true? Maybe you can point out some larger development houses that use a different primary language.
Are they a bunch of masochists who like to make things harder for themselves (since C# and other languages are more readable)? Are they just stubborn and set in their ways? There has to be a reason everybody uses C++, and if it is not speed, then what is it?
So I thought I'd jump in on this discussion, and I'm going to preface my response by saying "Save your hate/flame responses about WildTangent for another thread, this thread is about technology, not business."
That being said, I worked for a company called WildTangent for many years. Back when they were a technology company they had an ActiveX graphics engine with a Java interface which was designed to be a flash competitor that anyone could use (we're talking 2000'ish dot-com stuff here.) Our engine, being ActiveX was C++, but all the games were written entirely in Java, a managed language. There were performance penalties for calling through the COM layer, but the rendering on the C++ side, and the game logic on the Java side worked just fine. We wrote a Tony Hawk Pro Skater 2 port "Skatepark Sessions", a "Need for Speed" port, among other games with all the game code in Java... a managed language, and they ran great.
We also solved the C# "issues" around garbage collection and memory management of C++ engine objects when I was there last year. Our C# games ran with ample speed (~1000fps for a racing game with vsync off of course.)
These days, whichever language you choose, I'm pretty sure from personal experience, you can make a viable game with it, from an academic level.
But that's academics, and you're talking "big name developers" which is business. There's development costs which can be offset by using pre-existing company tech, and there's target market issues, where C# doesn't work on PS3 or non-MS devices.
The WildTangent Webdriver as a graphic engine, failed because Microsoft lost the Java war, and XPSP1 made ActiveX objects "scary" to the common user by popping up enough dialog boxes and yellow bars and page reloads to dissuade the user from jumping through all the hoops. From a business perspective, you don't want to write tech, that another company can pull the rug out from under you on. You probably don't want to ship the CLR/JIT interpretor to run your game, in the case that your end user doesn't have the version you need pre-installed. That leaves you with C++.
It's a mature language with the least dependencies on external companies. It's the most portable among devices, and that leaves you with flexibility to target PS3/Xbox360/Wii etc... without too much re-engineering. It makes a LOT of sense as a language of choice for big name developers to use.
Is C# bad to use? Heck no, but in the world of business, targeting more than just XBLA is where it's at.