do you think c++ will ever get replaced?
Printable View
do you think c++ will ever get replaced?
With what? D--?
I'm sure another language will eventually make C++ obsolete, but not any time soon.
C++ provides a very nice balance between high and low level programming that your hard pressed to find in other languages; I think it'll be a very long while.
I've already evolved. I send machine instructions directly using a crude magnet and my incredibly powerful will.
If C is any indication, I don't think C++ will be going away until maybe 1000 years into the future.
Completely, in all application domains? No. C++ is very versatile and portable. But a shift has been occurring for years in many domains. IT infrastructure is largely Java and even .Net now, with RoR even making some inroads. C# is making inroads in Windows client development, and even some game development is being done in Java, with scripting in Lua, Python, Ruby, etc.
There will always be the need for speed and close to the metal C++ code, but frankly I wouldn't choose it to develop new software unless strict time and/or space constraints dictated it.
My understanding is that c++ is pretty much the fastest programming language out (apart from assembly) Would it be possible to create say a next gen game like crysis with C# and XNA or python?
Languages aren't fast, per se, implementations of programs using them are. I don't know what "crysis" is, but I assume it's a fast action 3D game. The core of something like that would almost certainly be written in a combination of C, C++, and assembly, but I could imagine that parts of it are scripted with something like Python, Ruby, Lua, etc.
I admire your hype-avoiding skills, good sir. What you assume is correct. The reason the game was so highly anticipated was for its graphics and fully destructible buildings (also breakable trees), plus it takes on an open island like Far Cry. You can also add attachments to your weapon at any time and you have a "nanosuit" which has several modes including armor mode, cloak mode, strength mode, and speed mode.
Here? Where is that? If I'm writing a Windows GUI for a handheld where portability is not a top concern -- which I am now -- I'm choosing C#. If I'm writing a dynamic web application I'm probably choosing Java/J2EE, Ruby on Rails, or Python/Django. If I'm writing real time software where speed is critical, C++.
C++ would work for all of those as well, but I'd rather not deal with its nits and headaches when there are better alternatives for specific tasks.
For many applications, speed isn't the highest priority.
I love C++, but I wouldn't use it for a website where I could use ASP instead.
Or if I wanted to write a multiplatform program that doesn't need to be super fast, I'd use Java since I wouldn't need to compile it on every platform.
Use the right language for the right job.
Yes. When? Not for quite some time, that's for sure. But it will almost certainly be replaced at some point (at least for most of it's usage).
As discussed in this thread and elsewhere, performance is only one aspect. In most programs, only a small proportion is using up most of the CPU-time, and only that portion is really critical to use the "right" language.
I will make no prediction of WHAT will replace C++...
--
Mats
I was just thinking that I should have added something along those lines just after I pressed submit. The current computer architecture may change in the future - and in fact one reason why the "popular language" will change is that processors change in overall architecture. In the current languages, it's pretty hard to generically write code that works in multiple threads. If the trend of expanding computer calculation capacity by more cores continue, we may find that "best performance" is achieved by a different sort of software design, which in turn means that the language used for that purpose may have to change to describe better how we would want things to work in a super-parallel computing environment.
We also can expect the boundaries between processor and graphics processor will further blur. Currently, I don't think this leads to a new language being needed, but I expect that current languages may not provide the right support if this continues [graphics processors also tend to be "super-parallel"].
--
Mats
I agree.
Necessarily, we are today closer to the limits of our current programming languages problem domain capabilities, than we were yesterday. What we probably can't tell is how close we are, until a possibly unrelated technological breakthrough suddenly exposes the weakness when we find we can't express it in computing terms or find it exceedingly expensive to do it so.
For x(?) decades we have been handling computing problems by throwing more hardware and increasingly bigger development teams at them with only marginal developments in programming paradigms, methodologies and concepts; essentially we have been patching up. I think we could get away with it because hardware development allowed us to. But Moore's law is going to break eventually if new architectures aren't developed. It's not if, it's when. In fact, the rate has been slowing for the past years from what I hear. Cores probably will give us a few more years... but eventually we will reach some threshold when you can't just up one side of the equation without upping the other.
x = 4
All the big paradigm developments happened in the late 60s.
As far as anyone can tell yes. Does that mean we are done though? Hardly.
I would like to say that C is for embedded devices that cannot support C++ or any other modern languages.
For computer programs, I would like to say C++.
Welcome to the beginning of yet another C vs C++ flamewar. ;)
Not this time.