How long until c++ disapear from game development

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


Programming is evolving in the way that, no matter how is done, software has to be written in the way you think, take a look at python


Again, Python cannot be used to implement OS, database, web client or anything similar. Compile it to machine code if you will - it cannot be done. But feel free to show an example.

For comparison, WIMP (aka Windows/OSX) user interface was first demoed in 1960s on hardware that had less computing power than a wrist watch or a clothes washer today. Yet there is not a single case where Python (or similar language) would be shown to be capable of anything remotely close to that simplicity.

remember c++ code is translated to asm code[/quote]
That doesn't matter. Managed code as provided by languages today has an impedance mismatch - it's wrong for the hardware that is running it. The assumptions it makes make it impossible to implement some fundamental concepts needed for such functionality.

ASM and C/C++(D, Go, ...) however have 1:1 parity. Concepts from either can be expressed in each of them. So either you build hardware with functionality which your language is incapable of using or you build a language that allows that.

Programming is evolving[/quote]
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.
Advertisement
I love managed languages, the .NET world, C# and F#.. I really do.

But performance increase in hardware is not as fast as it used to be, it's quite easy to see a slow down in that respect. For this reason, being able to squeeze out that little bit of performance (be it by pure computational power or by clever memory management) will be as relevant in 10 years than it is now, perhaps more.

On the other hand, JITted runtimes are getting better and better, smarter and smarter.. so maybe there's still hope.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

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.

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.


This stupidity of "if others dont use it is because they cant handle it" and "I > U" stuff will never die, will it?

Because awesome performance-aware pure pwnage web developers should use C++. I use C# because I suck.

[quote name='Gl_Terminator' timestamp='1315936525' post='4861186']
Programming is evolving in the way that, no matter how is done, software has to be written in the way you think, take a look at python


Again, Python cannot be used to implement OS, database, web client or anything similar. Compile it to machine code if you will - it cannot be done. But feel free to show an example.

For comparison, WIMP (aka Windows/OSX) user interface was first demoed in 1960s on hardware that had less computing power than a wrist watch or a clothes washer today. Yet there is not a single case where Python (or similar language) would be shown to be capable of anything remotely close to that simplicity.

remember c++ code is translated to asm code[/quote]
That doesn't matter. Managed code as provided by languages today has an impedance mismatch - it's wrong for the hardware that is running it. The assumptions it makes make it impossible to implement some fundamental concepts needed for such functionality.

ASM and C/C++(D, Go, ...) however have 1:1 parity. Concepts from either can be expressed in each of them. So either you build hardware with functionality which your language is incapable of using or you build a language that allows that.

Programming is evolving[/quote]
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.
[/quote]

Even if you think it or not programming languages are evolving and the last invention wasnt OO, it was Aspect Oriented Programming, again take a look at python. The only reason C++ is not death is because is the best shot when programming at low level. But again take a look at cells for example Motorola cells java the JVM implemented on HW and you build all the applications on it.

Even if you think it or not programming languages are evolving and the last invention wasnt OO, it was Aspect Oriented Programming, again take a look at python.

Ugh, AOP should never be quoted as evolution. It's the inbred child of kissing cousins.

The only reason C++ is not death is because is the best shot when programming at low level. [/quote]

The question you are asking is - when will we lose access to hardware.

Imagine the day when you can no longer access hardware. Where you are provided an API by a vendor. Want to display an image, there is PlayVP8. Want H264? Sorry, not supported. Want to write custom fractal codec that has lossless compression ratio 100 times better than today's videos? Sorry, not supported. Want to play a video you recorded in Sony camera? Sorry, we only support Samsung.

Microsoft Phones are first example of this. Windows 8 will be the next. Which is ok, since you weren't planning on having a job in programming till retirement, were you? Because once things are standardized, the work can be performed by standardized workers which are being trained by million. Want to develop something better? Sorry, there is no hardware, and we control the platform. But feel free to license our stack and we might allow you to offer your new revolutionary codec as soon as you transfer all the patents to us and pay licensing fees.

Want to write new language? Sorry, we offer C# and VB. (remember Flash on Apple?). Remember how it cannot be implemented even if one wanted to?

This is the question you are asking.

But again take a look at cells for example Motorola cells java the JVM implemented on HW and you build all the applications on it.[/quote]
Oh, you want to use Java chipset? Sure, just pay $2 for each application you distribute to Oracle for licensing fees. People probably think this is a joke.


Trust me, you don't want C++ to die. And by consequence C, Go, D, assembly, ...

----

Also, regarding my scenario above, my estimate is 6-10 years.

[quote name='Gl_Terminator' timestamp='1315938420' post='4861198']
Even if you think it or not programming languages are evolving and the last invention wasnt OO, it was Aspect Oriented Programming, again take a look at python.

Ugh, AOP should never be quoted as evolution. It's the inbred child of kissing cousins.

The only reason C++ is not death is because is the best shot when programming at low level. [/quote]

The question you are asking is - when will we lose access to hardware.

Imagine the day when you can no longer access hardware. Where you are provided an API by a vendor. Want to display an image, there is PlayVP8. Want H264? Sorry, not supported. Want to write custom fractal codec that has lossless compression ratio 100 times better than today's videos? Sorry, not supported. Want to play a video you recorded in Sony camera? Sorry, we only support Samsung.

Microsoft Phones are first example of this. Windows 8 will be the next. Which is ok, since you weren't planning on having a job in programming till retirement, were you? Because once things are standardized, the work can be performed by standardized workers which are being trained by million. Want to develop something better? Sorry, there is no hardware, and we control the platform. But feel free to license our stack and we might allow you to offer your new revolutionary codec as soon as you transfer all the patents to us and pay licensing fees.

Want to write new language? Sorry, we offer C# and VB. (remember Flash on Apple?). Remember how it cannot be implemented even if one wanted to?

This is the question you are asking.

But again take a look at cells for example Motorola cells java the JVM implemented on HW and you build all the applications on it.[/quote]
Oh, you want to use Java chipset? Sure, just pay $2 for each application you distribute to Oracle for licensing fees. People probably think this is a joke.


Trust me, you don't want C++ to die. And by consequence C, Go, D, assembly, ...
[/quote]


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.
Antheus, you are somehow condemning languages based on the sins of a closed platform. The closed-ness of iOS or Windows Phone has nothing to do with ObjectiveC or C# and everything to do with the device owners arbitrarily locking down the device platform.

C++ is no different than C# or Java in this regard, it requires a runtime to be supported and a device maker can just as easily not support C++ on their device. The only real base difference is the degree of ease with which you can get direct hardware access, which with all the language interop options, is a poor argument in the first place, as you simply code that 1% in a domain specific language.


Do I think being locked away from the hardware sucks? You betcha. Do I hate the walled gardens that Apple pioneered and Microsoft ( and Amazon, etc... ) are following? You betcha. Do I hate talking like Sarah Palin? You betcha. But not one of these things has a damned thing to do with C++.


Mind you, this kind of conversation has happened again and again and again and frankly nothing changes. There is always talk about the death of languages, but frankly, languages never die, even old shitty ones that deserve to die have this innate ability to persevere. Additionally, the death of programming as a profession has been predicted so many times I have lost count. I remember reading an article in Dr Dobbs years ago about how REXX was going to make all programmers obsolete... and here we are, multiplying and still getting paid reasonably well.
BASIC isn't dead. Nor is C. Hell, not even Fortran is dead!
So, what does that tell you about C++'s chances of being dead in 'a few years'?
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
Huge amount of available work is maintaining existing codebases. Last time I checked, there was still plenty of work available for FORTRAN programmers in this respect.

So question could be: When will it become cheaper to rewrite millions of lines of battle-tested code in a completely different language, re-test, re-convince our customers the new version is as reliable and be in a position to stop supporting our current library etc etc than to hire some C++ programmers and stick with what we have.

When programs were written in assembly, it probably was cost effective to upgrade to C and upgrading C to C++ was relatively painless so financially feasible in exchange for benefits (which is a huge reason for C++'s original 'better C' design and success in my view).

These choices are not made based on technology, they are made based on economics.

This topic is closed to new replies.

Advertisement