How long until c++ disapear from game development

Started by
43 comments, last by Washu 12 years, 7 months ago

Of course the day when you loose access to hardware will come, but that is the day when informatics will face more serious problems than now, when a computer will manage complex things that humans do, WHO WILL CARE for a lots of stuff you care now. For the other side take an example of shader languages, they are high level languages and they run on video cards faster that any c/c++ application does. You need to understand that is natural evolution. For example you are forced to write languages and OS in Intel or AMD architecture and you don't complain about that. If you think you can make an improve you cant do anything.


I'm sorry, how is GLSL a high level language (I don't know about the direct X shader language, but I can't imagine it's very different)? It's not managed, they have to be compiled and linked, and they're strictly procedural. GLSL reads like a subset of c++.

If they run 'faster', it's because you are running the programs in a hundred processors at once, and they have direct access to the video card's video memory instead of having to send the information each frame (if you were using immediate mode, for example).

I have to agree with the people saying that we'll never be quite ready to give up on low level access, and the performance that doing away with abstraction gives us. It may not be c++ exactly that holds onto market share a couple of decades down the line, but the need for it will not be going away soon.
Advertisement
With Win8 now out, it's clear that WinRT is a managed runtime, a slightly tweaked .Net CLR. Future C++ development for Windows will now require proprietary managed C++, so talk of "standard-compliant" C++ in future versions of Windows is mostly moot, at least as far as consumer markets go. Win8 will be the start of transition towards Windows being a full .Net stack, taking hardware vendors out of the equation.

The old run-time will continue to serve legacy applications but will likely be delegated into running as virtualized. Since it doesn't appear that Win32 will be getting any of the new facilities, Win32 doesn't look like viable commercial option for the future.

I'd estimate that despite being listed as C++, native code in Metro will be phased out during 8 and 9 since C++/CLI Metro apps can just compile to bytecode instead. To those that might remember the "undocumented API" wars of the 90s, this is Microsoft's perfect execution of that. And unlike 10 years ago, they no longer have a monopoly, so they're free to do as they please with courts not being able to touch them.

While it may not seem like a big deal, this change makes all existing tools and just about all third-party libraries obsolete as far as Win8+ goes. And with release cycles, my guess seems to have been quite accurate. Moore's law and current characteristics of mobile devices imply that during the next 2 versions managed runtime will become sufficient for effectively all but most demanding applications, effectively giving Microsoft better platform exclusivity than what Apple has today.


Outside of legacy support, this leaves Google as the last C++ supporter. But unlike Apple or Microsoft, they don't have their own desktop platform, an IDE, a business API (role of .Net) nor a compiler. Overall, a fairly poor position to be in. And with mobile market finally being completely partitioned and interoperability no longer relevant, it might force Google to push for their own exclusivity by introducing their own technology stack, they just lack anything even resembling a mature alternative.
Never just means that as far as we can see, it wont. No need to overreact.
I'm sorry, how is GLSL a high level language (I don't know about the direct X shader language, but I can't imagine it's very different)? It's not managed, they have to be compiled and linked, and they're strictly procedural. GLSL reads like a subset of c++.


Once upon a time all high level languages were like that. Direct3D's language is in fact called HLSL - standing for High Level Shading Language - pretty explicit, I would have thought. You should see some asm shaders.


I still think that "never" is a stupid answer. This means that c++ will be use for game development an infinite number of years from now. It means that when games no longer exist, humans disappeared from the universe, and the earth has been swallowed by the sun, c++ will still be in use in game development.


And the really scary thing about that image is the thought of how even more convoluted Bjarne may have made it by then!

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.


Never just means that as far as we can see, it wont. No need to overreact.


Sorry, "Never" has very simple and established meaning. "At no time in the past, present, or future; on no occasion; not ever". It doesn't mean something different just to fit your convenience.

I voted 20 for the same reason as others: If the choice is between 20 and Never, 20 is the closer answer of the two.
C++ will stick around until something that comes along that : a) has parallel programming as an integral part of the language; b) has a toolchain that compiles/generates native binary for the platform; c) has a syntax that which is not as horrid as Objective-C or Pascal derived languages. Oh and something that is equally supported/available on most platforms would be nice, too.

Basically an object oriented parallel programming language, with C# or C++ -esque syntax is probably the way to go. That said, some concepts in Obj-C is not bad either, so we need to cherry pick the best features from each respective language.
Latest project: Sideways Racing on the iPad

C++ will stick around until something that comes along that : a) has parallel programming as an integral part of the language; b) has a toolchain that compiles/generates native binary for the platform; c) has a syntax that which is not as horrid as Objective-C or Pascal derived languages. Oh and something that is equally supported/available on most platforms would be nice, too.

Basically an object oriented parallel programming language, with C# or C++ -esque syntax is probably the way to go. That said, some concepts in Obj-C is not bad either, so we need to cherry pick the best features from each respective language.


It probably needs to be mostly code compatible with C++ aswell to gain momentum. (Its one of the big reasons C++ managed to replace C in many fields, its easier to transition to a "new" language if you can keep doing what you've always done), The most likely replacement for C++ is a newer better version of C++ , if the standard branches we might get a replacement with a different name.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
[bquote]With Win8 now out, it's clear that WinRT is a managed runtime, a slightly tweaked .Net CLR. Future C++ development for Windows will now require proprietary managed C++, so talk of "standard-compliant" C++ in future versions of Windows is mostly moot, at least as far as consumer markets go.[/bquote]

This image would suggest that isn't exactly the case:
110913%20Windows%208%20Platform%20diagram.JPG

Basically an [s]object oriented[/s] parallel programming aware language, with C# or C++ -esque syntax is probably the way to go. That said, some concepts in Obj-C is not bad either, so we need to cherry pick the best features from each respective language.


Fixed that for you.

OO is not the be all and end all of programming; make it possible to do it, fix some of the issues with C++'s version of it but do not focus the language on it.
Antheus, your posts depress me...

Can the Linux save us?

This topic is closed to new replies.

Advertisement