Bjarne Stroustrup (C++) Interview... C++ exposed...???

On the 1st of January, 1998, Bjarne Stroustrup gave an interview to the IEEEs Computer magazine.
Naturally, the editors thought he would be giving a retrospective view of seven years of object-oriented design, using the language he created.

 

By the end of the interview, the interviewer got more than he had bargained for and, subsequently, the editor decided to suppress its contents, for the good of the industry but, as with many of these things, there was a leak. Here is a complete transcript of what was was said, unedited, and unrehearsed, so it isnt as neat as planned interviews.

 

You will find it interesting...

 

 

 

>Interviewer: Well, its been a few years since you changed the world of software design, how does it feel, looking back?

>Stroustrup: Actually, I was thinking about those
days, just before
>you arrived. Do you remember? Everyone was writing C
>and, the trouble was, they were pretty damn good at
it.
>Universities got pretty good at teaching it, too.
They were
>turning out competent - I stress the word competent -
>graduates at a phenomenal rate. Thats what caused the
>problem.
>Interviewer: Problem?
>Stroustrup: Yes, problem. Remember when everyone
wrote Cobol?
>Interviewer: Of course, I did too
>Stroustrup: Well, in the beginning, these guys were
like demi-gods.
>Their salaries were high, and they were treated like
royalty.
>Interviewer: Those were the days, eh?
>Stroustrup: Right. So what happened? IBM got sick of
it, and
>invested millions in training programmers, till they
were a dime a
>dozen.
>Interviewer: Thats why I got out. Salaries dropped
within a year,
>to the point where being a journalist actually paid
better.
>Stroustrup: Exactly. Well, the same happened with C
programmers.
>Interviewer: I see, but whats the point?
>Stroustrup: Well, one day, when I was sitting in my
office, I
>thought of this little scheme, which would redress
the
>balance a little. I thought I wonder what would
happen, if there
>were a language so complicated, so difficult to
learn, that nobody
>would ever be able to swamp the market with
>programmers? Actually, I got some of the ideas from
X10,
>you know, X windows. That was such graphics
>system, that it only just ran on those Sun 3/60
things.
>They had all the ingredients for what I wanted. A
really
>ridiculously complex syntax, obscure functions, and
>pseudo-OO structure. Even now, nobody writes raw
X-windows code.
>Motif is the only way to go if you want to retain
>your sanity.
>Interviewer: Youre kidding...?
>Stroustrup: Not a bit of it. In fact, there was
another problem.
>Unix was written in C, which meant that any C
programmer could
>very easily become a systems programmer. Remember
>what a mainframe systems programmer used to earn?
>Interviewer: You bet I do, thats what I used to do.
>Stroustrup: OK, so this new language had to divorce
itself from
>Unix, by hiding all the system calls that bound the
two
>together so nicely. This would enable guys who only
knew
>about DOS to earn a decent living too.
>Interviewer: I dont believe you said that...
>Stroustrup: Well, its 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, its taken them a lot longer than I
thought it
>would.
>Interviewer: So how exactly did you do it?
>Stroustrup: It was only supposed to be a joke, I
never thought
>people would take the book seriously. Anyone with
half a
>brain can see that object-oriented programming is
>counter-intuitive, illogical and inefficient.
>Interviewer: What?
>Stroustrup: And as for re-useable code - when did you
ever hear
>of a company re-using its code?
>Interviewer: Well, never, actually, but...
>Stroustrup: There you are then. Mind you, a few
tried, in the
>early days. There was this Oregon company - Mentor
>Graphics, I think they were called - really caught a
cold
>trying to rewrite everything in C++ in about 90 or
91. I felt
>sorry for them really, but I thought people would
learn from their
>mistakes.
>Interviewer: Obviously, they didnt?
>Stroustrup: Not in the slightest. Trouble is, most
companies
>hush-up all their major blunders, and explaining a
$30
>million loss to the shareholders would have been
difficult. Give
>them their due, though, they made it work in the end.
>Interviewer: They did? Well, there you are then, it
proves O-O works.
>Stroustrup: Well, almost. The executable was so huge,
it took
>five minutes to load, on an HP workstation, with
128MB of
>RAM. Then it ran like treacle. Actually, I thought
this
>would be a major stumbling-block, and Id get found
out
>within a week, but nobody cared. Sun and HP were only
too
>glad to sell enormously powerful boxes, with huge
resources just
>to run trivial programs. You know, when we had our
>first C++ compiler, at AT&T, I compiled Hello World,
and
>couldnt believe the size of the executable. 2.1MB
>Interviewer: What? Well, compilers have come a long
way, since then.
>Stroustrup: They have? Try it on the latest version
of g++ - you
>wont get much change out of half a megabyte. Also,
there
>are several quite recent examples for you, from all
over the
>world. British Telecom had a major disaster on their
hands but,
>luckily, managed to scrap the whole thing and start
>again. They were luckier than Australian Telecom. Now
I
>hear that Siemens is building a dinosaur, and getting
more and
>more worried as the size of the hardware gets bigger,
to
>accommodate the executables. Isnt multiple
inheritance a joy?
>Interviewer: Yes, but C++ is basically a sound
language.
>Stroustrup: You really believe that, dont you? Have
you ever sat
>down and worked on a C++ project? Heres what happens:
>First, Ive 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 cant help laughing when I hear about the
problems
>companies have making their modules talk to each
other. I
>think the word synergistic was specially invented to
twist the
>knife in a project managers ribs.
>Interviewer: I have to say, Im beginning to be quite
appalled at
>all this. You say you did it to raise programmers
>salaries? Thats obscene.
>Stroustrup: Not really. Everyone has a choice. I
didnt expect
>the thing to get so much out of hand. Anyway, I
basically
>succeeded. C++ is dying off now, but programmers
still get high
>salaries - especially those poor devils who have to
>maintain all this crap. You do realise, its
impossible to
>maintain a large C++ software module if you didnt
actually write
>it?
>Interviewer: How come?
>Stroustrup: You are out of touch, arent you? Remember
the typedef?
>Interviewer: Yes, of course.
>Stroustrup: Remember how long it took to grope
through the header
>files only to find that RoofRaised was a double
precision
>number? Well, imagine how long it takes to find all
the
>implicit typedefs in all the Classes in a major
project.
>Interviewer: So how do you reckon youve succeeded?
>Stroustrup: Remember the length of the average-sized
C project?
>About 6 months. Not nearly long enough for a guy with
a
>wife and kids to earn enough to have a decent
standard of
>living. Take the same project, design it in C++ and
what do you
>get? Ill tell you. One to two years. Isnt that
>great? All that job security, just through one
mistake of
>judgement. And another thing. The universities havent
>been teaching C for such a long time, theres now a
>shortage of decent C programmers. Especially those
who
>know anything about Unix systems programming. How
many guys would
>know what to do with malloc, when theyve used new all
these
>years - and never bothered to check the return
>code. In fact, most C++ programmers throw away their
return codes.
>Whatever happened to good ol -1? At least you
>knew you had an error, without bogging the thing down
in all that
>throw catch try stuff.
>Interviewer: But, surely, inheritance does save a lot
of time?
>Stroustrup: Does it? Have you ever noticed the
difference between
>a C project plan, and a C++ project plan? The
planning
>stage for a C++ project is three times as long.
Precisely
>to make sure that everything which should be
inherited is, and
>what shouldnt isnt. Then, they still get it wrong.
>Whoever heard of memory leaks in a C program? Now
finding them
>is a major industry. Most companies give up, and send
the product
>out, knowing it leaks like a sieve, simply to
>avoid the expense of tracking them all down.
>Interviewer: There are tools...
>Stroustrup: Most of which were written in C++.
>Interviewer: If we publish this, youll probably get
lynched, you
>do realise that?
>Stroustrup: I doubt it. As I said, C++ is way past
its peak now,
>and no company in its right mind would start a C++
project without
>a pilot trial. That should convince them that its the
road to
>disaster. If not, they deserve all they get. You
know, I tried to
>convince Dennis Ritchie to rewrite Unix in C++.
>Interviewer: Oh my God. What did he say?
>Stroustrup: Well, luckily, he has a good sense of
humor. I think
>both he and Brian figured out what I was doing, in
the early days,
>but never let on. He said hed help me write a C++
>version of DOS, if I was interested.
>Interviewer: Were you?
>Stroustrup: Actually, I did write DOS in C++, Ill
give you a demo
>when were through. I have it running on a Sparc 20 in
the
>computer room. Goes like a rocket on 4 CPUs, and only
>takes up 70 megs of disk.
>Interviewer: Whats it like on a PC?
>Stroustrup: Now youre kidding. Havent you ever seen
Windows 95?
>I think of that as my biggest success. Nearly blew
the game before
>I was ready, though.
>Interviewer: You know, that idea of a Unix++ has
really got me
>thinking. Somewhere out there, theres a guy going to
try it.
>Stroustrup: Not after they read this interview.
>Interviewer: Im sorry, but I dont see us being able
to publish
>any of this.
>Stroustrup: But its the story of the century. I only
want to be
>remembered by my fellow programmers, for what Ive
done for them.
>You know how much a C++ guy can get these days?
>Interviewer: Last I heard, a really top guy is worth
$70 - $80 an
>hour.
>Stroustrup: See? And I bet he earns it. Keeping track
of all the
>gotchas I put into C++ is no easy job. And, as I said
>before, every C++ programmer feels bound by some
mystic
>promise to use every damn element of the language on
every
>project. Actually, that really annoys me sometimes,
even
>though it serves my original purpose. I almost like
the
>language after all this time.
>Interviewer: You mean you didnt before?
>Stroustrup: Hated it. It even looks clumsy, dont you
agree? But
>when the book royalties started to come in... well,
you get the
>picture.
>Interviewer: Just a minute. What about references?
You must
>admit, you improved on C pointers.
>Stroustrup: Hmm. Ive always wondered about that.
Originally, I
>thought I had. Then, one day I was discussing this
with a
>guy whod written C++ from the beginning. He said he
could never
>remember whether his variables were referenced or
>dereferenced, so he always used pointers. He said the
>little asterisk always reminded him.
>Interviewer: Well, at this point, I usually say thank
you very
>much but it hardly seems adequate.
>Stroustrup: Promise me youll publish this. My
conscience is
>getting the better of me these days.
>Interviewer: Ill let you know, but I think I know
what my editor
>will say.
>Stroustrup: Whod believe it anyway? Although, can you
send me a
>copy of that tape?
>Interviewer: I can do that.



Yahoo! Groups Links


****** This email is confidential and is intended for the original recipient(s) only. If you have erroneously received this mail, please delete it immediately and notify the sender. Unauthorized copying, disclosure or distribution of the material in this mail is prohibited. Views expressed in this mail are those of the individual sender and do not bind Thinksoft Global Services (P) Ltd. or its subsidiary, unless the sender has done so expressly with due authority of Thinksoft.******


Reply via email to