Advertisement

How much life is left in C++ ?

Started by June 01, 2010 07:47 AM
72 comments, last by SiCrane 14 years, 5 months ago
Quote: Original post by DevFred
Quote: Original post by frob
For decades [Fortran] was the critical language that everyone knew, much like C++ is today.

C++ has the unique property that a significant percentage of programmers who claim they "know C++" actually don't know squad about C++. These are people who program in a weird mix of C and C++.
That is true of many languages. That isn't the point.


The point is that like Fortran, Lisp, and COBOL, it will continue to be a significant language for decades to come. It has been used as the basis for other languages, like Common-Lisp was pulled from the original Lisp. C++ will fall out of mainstream sooner or later -- and it is already trending out -- but the demand for skilled C++ programmers will continue into the distant future.

Quote: Original post by DevFred
Quote: Original post by frob
For decades [Fortran] was the critical language that everyone knew, much like C++ is today.

C++ has the unique property that a significant percentage of programmers who claim they "know C++" actually don't know squad about C++. These are people who program in a weird mix of C and C++.

"Oh, string is too expensive, I'm gonna use char*. What do you mean I can't delete an array? No no, this isn't undefined, it works just fine on my computer! And what's this exception safety you keep mumbling about?"


I will not name any names as the person in question isn't able to defend themself but I went to university and was taught much of these things you mention here. My lecturer would frequently have a go at me for using pure C++ instead of integrating some "faster" C stuff. Malloc and new coming to mind.

I use Java in my day-to-day job and stuff like this isn't a problem but I have set myself the task of getting to understand C++ better. Games are a hobby of mine and my way of keeping in the C++ loop but I know I still have a lot to learn!
Advertisement
I believe it was SiCrane who said something like
Quote: I'm an expert C++ programmer, but in order to use the language properly I need to be an expert.

I'm paraphrasing (can't find the quote, so apologies if I'm misquoting), but I agree with this. In any nontrivial development effort you will typically have a pyramid of developers, with a few gurus at the top, code monkeys at the bottom and so on. The width and height of the pyramid generally scale with the complexity of the development. The point is that C++ serves the needs of the top guys as much as it doesn't meet the needs of the lower levels.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
Quote: Original post by ChaosEngine
I believe it was SiCrane who said something like
Quote: I'm an expert C++ programmer, but in order to use the language properly I need to be an expert.

I'm paraphrasing (can't find the quote, so apologies if I'm misquoting), but I agree with this. In any nontrivial development effort you will typically have a pyramid of developers, with a few gurus at the top, code monkeys at the bottom and so on. The width and height of the pyramid generally scale with the complexity of the development. The point is that C++ serves the needs of the top guys as much as it doesn't meet the needs of the lower levels.


Well, while I generally agree with that quote, you can in fact write proper C++ with only a working knowledge of the language if you know the danger zones and keep out of them; the only superficial difference being that proper "expert" C++ code looks quite different from proper "laymans" code even when both achieve the same goal.

I sometimes wonder why Delphi or Ada isn't used more in this middle ground. Last I checked (which was around 2001... I think) Delphi was not much slower than C for heavy data crunching.
Quote: Original post by phantom
Quote: Original post by Ryman
Lastly, most people (including independent developers) prefer Delphi over the "virtual machine" languages for the same reasons that one would use C++ over it.
[citation needed]
I disagree that most people prefer Delphi, but Delphi is the VB of Asia.

Just like VB in the US, Delphi doesn't dominate any single industry, but it exists in niches all over the place.
Quote: Original post by Konfusius
I sometimes wonder why Delphi or Ada isn't used more in this middle ground. Last I checked (which was around 2001... I think) Delphi was not much slower than C for heavy data crunching.


Delphi is not used for number crunching, but for its RAD and VCL. It is a competitor to C#.Net - which is no coincidence, considering the author of C#.

Ada lacks that.

In practice, one needs two things:
- Robust, idiot-proof server-side infrastructure - Java
- Idiot-proof CRUD form designer - .Net or NetBeans/Eclipse, not forgetting Lotus, FoxPro, and similar.

Language is not relevant. What matters is that the above *frameworks* are backed by Oracle, IBM and Microsoft. That is by far the most important. Can you tell who owns Delphi - it changes owners about once a year.
Advertisement
Quote: Original post by ChaosEngine
The point is that C++ serves the needs of the top guys as much as it doesn't meet the needs of the lower levels.
No. C++ doesn't serve the "needs" of the best, unless you're implying that top talent gets understimulated unless it needs to deal with needless complexity and pointless drudgery. C++ is by modern standards a horrible language. Layers upon layers of unnecessary obstacles to actually solving the problem at hand. If the "top guys" are somewhat productive with C++, how much more productive do you think they'd be with a language that stays out of their way and lets them focus on solving a problem rather than worrying about whether they're careful enough about their exception handling that they're not leaking any memory?

Now, C++ has its niche; it has some bastardized sort of OOP while at the same time allowing the programmer close enough control over what's going on to allow for really fast code to be written, with much time, effort and expertise. That's nice if performance is all-important, but in most applications that's simply not true; in those cases developer time is far more expensive than CPU time and C++ is, consequently, inappropriate, regardless of the developers' skill level.
Quote: Original post by ChaosEngine
Now, C++ has its niche; it has some bastardized sort of OOP while at the same time allowing the programmer close enough control over what's going on to allow for really fast code to be written, with much time, effort and expertise. That's nice if performance is all-important, but in most applications that's simply not true; in those cases developer time is far more expensive than CPU time and C++ is, consequently, inappropriate, regardless of the developers' skill level.


As this is a games forum I was curious for answers with regards to that context- sorry I should have made that clearer in the OP. I know from first hand experience that C++ isn't the "go-to man" for all software these days I just wondered if this shift was going to happen in the games industry too. From some of the posts I would be inclined to say that this isn't likely to be the case for the near future.
"how much more productive do you think they'd be with a language that stays out of their way "

One could argue that the competitors to C++ are not languages which "stay out of the way". They have, for example, no multiple inheritance or operator overloading not through a technical limitation but exactly because they want to limit the power of the user.

That's not really "staying out of the way".
Quote: Original post by Valderman
Quote: Original post by ChaosEngine
The point is that C++ serves the needs of the top guys as much as it doesn't meet the needs of the lower levels.
No. C++ doesn't serve the "needs" of the best, unless you're implying that top talent gets understimulated unless it needs to deal with needless complexity and pointless drudgery. C++ is by modern standards a horrible language. Layers upon layers of unnecessary obstacles to actually solving the problem at hand. If the "top guys" are somewhat productive with C++, how much more productive do you think they'd be with a language that stays out of their way and lets them focus on solving a problem rather than worrying about whether they're careful enough about their exception handling that they're not leaking any memory?

You've missed the point, and to be fair, I phrased it badly. The top guys don't need to be uber-productive. They write the infrastructure that allows the rest of us to productive. This article explains it better.


Quote: Original post by Valderman
Now, C++ has its niche; it has some bastardized sort of OOP while at the same time allowing the programmer close enough control over what's going on to allow for really fast code to be written, with much time, effort and expertise. That's nice if performance is all-important, but in most applications that's simply not true; in those cases developer time is far more expensive than CPU time and C++ is, consequently, inappropriate, regardless of the developers' skill level.


Did you even read my post? Let me re-iterate
Quote: Original post by ChaosEngine
The point is that C++ serves the needs of the top guys as much as it doesn't meet the needs of the lower levels.


if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

This topic is closed to new replies.

Advertisement