Jump to content

  • Log In with Google      Sign In   
  • Create Account


How long until c++ disapear from game development


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • This topic is locked This topic is locked
44 replies to this topic

Poll: How long until c++ disapear from game development (66 member(s) have cast votes)

How long until c++ disapear from game development

  1. 5 (2 votes [3.03%] - View)

    Percentage of vote: 3.03%

  2. 10 (1 votes [1.52%] - View)

    Percentage of vote: 1.52%

  3. 15 (5 votes [7.58%] - View)

    Percentage of vote: 7.58%

  4. 20 (12 votes [18.18%] - View)

    Percentage of vote: 18.18%

  5. may 7 2045 (41 votes [62.12%] - View)

    Percentage of vote: 62.12%

  6. dec 3013 (1 votes [1.52%] - View)

    Percentage of vote: 1.52%

  7. never (4 votes [6.06%] - View)

    Percentage of vote: 6.06%

Vote

#21 Katie   Members   -  Reputation: 1283

Like
3Likes
Like

Posted 13 September 2011 - 03:43 PM

" I remember reading an article in Dr Dobbs years ago about how REXX was going to make all programmers obsolete"


I remember reading adverts in the 1990s for the languages which would replace C and C++ with languages so easy that managers would be able to write the code themselves... I'll bet no-one's ever heard of any of them these days.

Easily 20 years this conversation's been going.

It's actually getting very very hard to hire good C/C++ people. And that's a problem because Google runs on hardcore C++ stuff; KVM and Xen need good C hackers, performance libraries for Android need C and C++ coders... Just this week Google is talking about tech to run C++ code natively inside sandboxes because they know the world isn't replacing that stuff any time soon. Good. Means my pay will go up for my rarity value...

We've all been waiting 50 years for Cobol to die and it still won't.

Sponsor:

#22 japro   Members   -  Reputation: 887

Like
0Likes
Like

Posted 13 September 2011 - 04:22 PM

I'm always very amused how many people around here seem to see C++ as some sort of anachronism for masochists with unreasonable performance needs. The "work" I'm doing at the moment is for scientific high performance computing. Those guys aren't even done "exploring" C++ and still sit on huge amounts of legacy Fortran code :D. I think C++ will stick especially long exactly because all the attention shifts to "higher level" stuff. I don't see any languages emerge that are seriously threatening C++'s "niche" (i.e. compiled "high level" language that is "close to the hardware"). Also, getting the last bit out of hardware is not getting easier, actually the opposite. Caching, out of order execution, vectorization etc. are not easily controlled from managed languages. Also, the VM/JIT compiler has to be written somehow... Sure C++ will lose some ground to more suitable tools in different areas, but I don't see it going away anytime soon.

#23 Serapth   Crossbones+   -  Reputation: 5181

Like
1Likes
Like

Posted 13 September 2011 - 04:42 PM

I'm always very amused how many people around here seem to see C++ as some sort of anachronism for masochists with unreasonable performance needs.


I think few people here truly vilify C++, but in this forum they sure as hell do! There is a difference between a programmer with many years of experience working with C++ and a newbie trying to learn the basics of programming. Keep in mind the forum this conversation is being held within.

C++ is a stupid beginners language.
C++ is a stupid productivity language.

That said, C++ very much has its place and will continue to for a very long time.


One of the other realities, which I am kinda amazed hasn't been addressed is the number C++ developers required has probably dropped. With a mixed language environment, most of the developers on a game project simply do not need to know C++, only a handful of team members do. Granted, that doesn't change the fact they require C++, but odds are pretty good if you get hired entry level in the game industry these days, you aren't going to actually be working in C++.

#24 Telastyn   Crossbones+   -  Reputation: 3718

Like
0Likes
Like

Posted 13 September 2011 - 05:28 PM

Let's stop bringing up fortran and cobol shall we? We're not talking about code with high reliability requirements like banking software, or backwards compatibility requirements like an OS or something with such a difficult/esoteric domain as some scientific computing. Even in the best of cases where you re-use a core engine you keep that what? 10 years?

As Aardvajk points out, it's a matter of economics and games are inherently different in this domain than the cases where it makes sense to keep stuff like fortran around.

#25 NightCreature83   Crossbones+   -  Reputation: 2673

Like
0Likes
Like

Posted 13 September 2011 - 05:56 PM

My only wish is that we are not stuck with stone age tools like Python in 20 years.

In 20 years I expect: "Tea, Earl Gray, hot" and no less. Because I sure as hell won't be writing for loops then.

The so-called evolution of computer languages is not. There has been not even an inch of progress in that regard for past 30 years. Last invention, for better or worse, was OO.

Actually there are some changes that have happened more recently but they have all been more aimed at the architectural level of code then at the Paradigm level. Think of Mixin, aspect oriented programmingand the like not all of these have taken hold yet though.
Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#26 frob   Moderators   -  Reputation: 18892

Like
0Likes
Like

Posted 13 September 2011 - 06:01 PM

Even in the best of cases where you re-use a core engine you keep that what? 10 years?


A few months ago I ran across a comment in our very old engine. It basically said "The third rewrite is the charm, hope this works forever". The date on the comment was 1997.

A solid game engine can last much more than 10 years. It will naturally evolve and grow but the core can have a very long and hardy life.

The Quake engine is approaching 20 years old. Renderware is over 15 years old and has been incorporated through many EA projects. The original Sims Engine now powers the 3DS game and is over 15 years old. The Open Dynamics Engine recently celebrated its 10th birthday. These are in decline and tend to support your ten year theory.



But others, like the C4 engine, Unity, PyGame, and others are likely to still be trending growth on their 10th birthdays.

We are seeing the game engines start to mature into long-term products. I expect a few will last 30-50 years and persist for decades more as legacy tools and apps.



C++ will not disappear from games for a long, long, long time. I can easily imagine job hunters in the year 2100 looking for legacy C++ coders for game engines and tools. It is not so different from the older languages we use today, notwithstanding your dislike of the comparison with COBOL, Fortran, and other older languages which are very much alive even though 60 years have passed over their heads.

BASIC predates C by a decade and yet we still see that language evolving and in active use in games with no end in sight.
Check out my personal indie blog at bryanwagstaff.com.

#27 phantom   Moderators   -  Reputation: 6796

Like
3Likes
Like

Posted 13 September 2011 - 06:02 PM

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.


And you need to under stand what you are talking about.

Firstly, a GPU isn't a magically device; it runs a limited subset of problems very fast (massively parrallel, memory coherant, latency unsensative ones for the most part) but despite what NV (and AMD to a lesser degree) might well have you believe they are not The One True Future. Throw it a class of problems it DOESNT deal well with, or indeed a set of data which is too small and all you've got is a slightly faster heater.

Secondly; shaders express a very limited language in order to focus on these very small windows of tasks and are ultimatily DSLs for graphics and (limited) compute.

Finally, OpenCL is a C based API and language which extends the C language to target GPUs. AMP is a MS developed C++ version of the same. C and C++ are making inroads on to the GPU (which both delights and horrifies me in about equal amounts) and GPUs are making changes to embrace the languages (AMD's Core Next has various features which make writing C++ code easier to target to a GPU.

In short; C++ is gaining more areas it can be used, not losing them and this will continue to expand while there is a need for such access to exist.

Yes, many people can go off and code in Python, Java, C#, VB.Net and JavaScript and will get their work done faster than if they did it in C++ and with a runtime which is fast enough. However these people rely on others to develop their platforms, their compilers, their optimisations and JIT compilers... and it's down there you'll find those who want to work with C++ etc.. and as Katie say's we are becoming a rarer breed which means we can get paid more.. and I'm ok with that :)

As for C++ vanishing from gamedev; not until all the console makers give us a tool chain based on something else.... so about half-past never...

#28 mhagain   Crossbones+   -  Reputation: 7446

Like
0Likes
Like

Posted 13 September 2011 - 06:20 PM

I hope it will never-ever because its the only language I'm good at :)

to take it seriously I think because someone can't handle c++ (and uses c# etc.) doesn't mean that it should be avoided. It only means that c# is good for learning programming and c++ is for hardcore, performance-aware programmers.


Sorry, but that's nuts. "I'm hardcore because I use a more difficult language" is just wrong on so many levels. And as for performance - cases can be constructed where C# wallops C++; even heavily optimized C++ by someone who knows what they're doing (Raymond Chen has one on his blog but I can't find the link just now).

I voted "Never" just because it was the most reasonable answer - more like the best of a bad lot as predicting an exact timeframe seems even more silly. "Don't know but not for a pretty damn long time and most likely well after I'm pushing up daisies" would have been a better option.

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#29 Gl_Terminator   Members   -  Reputation: 448

Like
0Likes
Like

Posted 14 September 2011 - 06:55 AM

Yes, many people can go off and code in Python, Java, C#, VB.Net and JavaScript and will get their work done faster than if they did it in C++ and with a runtime which is fast enough. However these people rely on others to develop their platforms, their compilers, their optimisations and JIT compilers...



And c++ programers rely on CPU and hardware designers and they don't complain about that, men you have just discovered how this world works. :lol:

#30 speciesUnknown   Members   -  Reputation: 527

Like
2Likes
Like

Posted 14 September 2011 - 07:52 AM

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.

I think that at some point between now and the end of the universe we are going to see a change in computers which means c++ is no longer used for game development. So, "Never" is the stupidest possible answer.
Don't thank me, thank the moon's gravitation pull! Post in My Journal and help me to not procrastinate!

#31 Kian   Members   -  Reputation: 238

Like
0Likes
Like

Posted 14 September 2011 - 08:14 AM

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.

#32 Antheus   Members   -  Reputation: 2393

Like
-2Likes
Like

Posted 14 September 2011 - 10:19 AM

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.

#33 Arthur Souza   Members   -  Reputation: 1416

Like
0Likes
Like

Posted 14 September 2011 - 11:26 AM

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

A.

Lotus - Action RPG In development http://www.gamedev.n...die-rpg-engine/ |
Personal blog In Portuguese: lotuzgames.wordpress.com |


#34 mhagain   Crossbones+   -  Reputation: 7446

Like
0Likes
Like

Posted 14 September 2011 - 11:34 AM

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!

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#35 frob   Moderators   -  Reputation: 18892

Like
-1Likes
Like

Posted 14 September 2011 - 11:47 AM

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.
Check out my personal indie blog at bryanwagstaff.com.

#36 Tachikoma   Members   -  Reputation: 548

Like
0Likes
Like

Posted 14 September 2011 - 11:57 AM

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

#37 SimonForsman   Crossbones+   -  Reputation: 5772

Like
1Likes
Like

Posted 14 September 2011 - 01:15 PM

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.
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!

#38 phantom   Moderators   -  Reputation: 6796

Like
1Likes
Like

Posted 14 September 2011 - 01:48 PM

Basically an object oriented 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.

#39 Gamer Gamester   Members   -  Reputation: 136

Like
0Likes
Like

Posted 14 September 2011 - 06:08 PM

Antheus, your posts depress me...

Can the Linux save us?

#40 Serapth   Crossbones+   -  Reputation: 5181

Like
0Likes
Like

Posted 14 September 2011 - 06:26 PM

Antheus, your posts depress me...

Can the Linux save us?


Oh god, if Linux is the answer, we are all screwed!




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS