views:

1111

answers:

11

I ran into this supposed interview of Bjarne Stroustrup, the inventor of C++.

http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml

Stroustrup: Well, it's been long enough, now, and I believe most people have figured out for themselves that C++ is a waste of time but, I must say, it's taken them a lot longer than I thought it would...

Interviewer: Yes, but C++ is basically a sound language.

Stroustrup: You really believe that, don't you? Have you ever sat down and worked on a C++ project? Here's what happens: First, I've put in enough pitfalls to make sure that only the most trivial projects will work first time. Take operator overloading. At the end of the project, almost every module has it, usually, because guys feel they really should do it, as it was in their training course. The same operator then means something totally different in every module. Try pulling that lot together, when you have a hundred or so modules. And as for data hiding, God, I sometimes can't help laughing when I hear about the problems companies have making their modules talk to each other.

Is this a hoax? Do any of these points seem true for any of the veteran C++ programmers out there?

+29  A: 

It's a well-known hoax.

And no, learning C++ isn't a waste of your time, something that's been discussed on StackOverflow many times.

Judah Himango
That link only says "(hoax)" but doesn't explain anything else.
Unknown
scroll to the bottom of the link - it's a spoof
MrTelly
+5  A: 

I would be hesitant to believe any article that starts off saying a journalist has suppressed something for the good of something else.

Wayne Koorts
+1  A: 

C++ (and Java) probably the best language to learn to understand concepts of OOP. I remember learning it in college benefited me a lot.

Dmitris
+18  A: 

You just have to check the Stroustrup's website (the FAQ part) to find that it's wrong - a well known hoax as Judah Himango already pointed :

Did you really give an interview to IEEE?

in which you confessed that C++ was deliberately created as an awful language for writing unmaintainable code to increase programmers' salaries? Of course not. Read the real IEEE interview.

Klaim
Thanks for definitive proof of hoax.
Unknown
+1  A: 

From the article titled "The Real Stroustrup Interview" in IEEE Computer Magazine Vol. 31 Issue 6 pp.110-114 (June 1998):

For the past few months, a hoax interview between Stroustrup and Computer has been making the rounds in cyberspace. While we regret the incident, it offers us a welcome opportunity to have the father of C++ share his insights on Standard C++ and software development in general. We can also attest to his continued sense of proportion and humor—he suggests that the fictitious interview would have been a much funnier parody had he written it himself.

Can Berk Güder
+4  A: 

It is a "waste of time" if you plan on being a Street Magician.

Alan
+9  A: 

As mentioned, this is a well-known hoax.

But it does provoke some interesting points. These days C++ is a waste of time, except for when you can't afford to waste time. Less opaquely: C++ is a waste of development time, except for when you can't afford to waste execution time.

dcw
for execution time, C could be better
hasen j
C is better in some cases, C++ in others. But C++ is more expressive (see http://accu.org/index.php/journals/1539), unless it's done badly and obfuscated
dcw
+2  A: 

C++ is far from being a waste of your time. You'll understand valuable concepts that will help you understand many other concepts in different programming languages. I.E.: VTABLE.

Pablo Santa Cruz
+1  A: 

As others mentioned, this Interview is hoax.

Well, I am one of the persons who hate C++ and normally doesnt use it, but learning it was definitely not a waste of time. At least now I know why I hate C++ and I understand why other persons use this language and think it is good.

If you want to learn this language to know about its concepts, its benefits and its drawbacks, to be able to read code written in it, and in general to be able to "talk about" it, it is never a waste of time. Same for any other programming language. It will increase your expierience. For example, C++ shows one common way of OOP - a way I dont like, but a way many other people use.

But if you want to learn it because "the people say that it is the best" (as I sometimes read), then it is really a waste of time. Same for any other programming language.

schoppenhauer
Actually, one thing I notice about C++ developers is that they tend not to be aggressive about defending the language. I've rarely seen the behaviour of - say - a Ruby on Rails advocate. The attitude tends to be "This is the tool I need for these reasons".
Andrew Shepherd
A: 

Stroustrup is not that stupid to say that! It is definitely a hoax!

A: 

There is not a single framework which uses all language features of C++. This introduces a huge inconsistency to the language's ecosystem.

QT is one of the few APIs which I would call a framework (or API for a lot of things):
But it defines own string, own array, ...

What's the point of a "standard" library when no one can use it in a portable and compatible way (from the aspect of interaction with other APIs)?

I know, there is boost, but what is boost compared to an API such as QT? Nothing.

Look at Java: The is the standard Java API, and every "foreign" API uses it, it's all perfectly compatible.

ivan_ivanovich_ivanoff
I guess you haven't read a lot of Java code. There are definitely some strange custom coded APIs that duplicate Java standard APIs out there. There's a whole real-time Java library for example, that doesn't use any Java standard classes and does its own memory management to avoid GC.
Zan Lynx
Well, I'm sure there are several example against my position, but not nearly as many as compared to C++.
ivan_ivanovich_ivanoff
You're not making sense. C++ has a standard library which is perfectly portable. Boost is portable. QT is portable. QT may define its own string, but it is STL compatible, provides iterators and everything else that allows it to be used with standard library code. Or boost code. The key here is generic programming. It doesn't matter that we have multiple string classes, as long as they can be treated the same.As for Java's API, I'm not sure that should be considered a good thing. How many deprecated classes does it have? How many "new" API's for old functionality?
jalf