Stroustrup's Confession (bogus?)

Geoff Smith (geoffs@unixg.ubc.ca)
Sat, 21 Mar 1998 17:19:36 -0800


Can someone tell me whether this is bogus interview?

Obviously, it has all the makings of a hoax, but even if these are not
Stroustrup's words, I think some of the points raised are valid(having
wondered about the merits of C++ myself), and they are very important in
determining whether the software industry may be burdened by entropic
languages.

I know there are lots of programmers on this list-- what do you think of
the idea of a language putting a burden on expression? (maybe this question
is also a linguistic/philsophical one... if everyone switched to Esperanto,
would this increase the efficiency of communication?)

----------
From: Kevin Chu <kevin@portal.ca>
To: linux@ee.ubc.ca
Subject: Stroustrup's Confession
Date: Tuesday, March 17, 1998 4:15 PM

->Stroustrup Confesses about C++
->
->On the 1st of January, 1998, Bjarne Stroustrup gave an interview to
the
->IEEE's '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 said, unedited, and
->unrehearsed, so it isn't as neat as planned interviews.
->
->You will find it interesting...
->__________________________________________________________________
->
->Interviewer: Well, it's 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. That's 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: That's 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 what's 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 a bitch of a
-> 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: You're 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, that's 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 don't believe you said that...
->
->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: 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 didn't?
->
->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 molasses.
-> Actually, I thought this would be a major
-> stumbling-block, and I'd 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 couldn't 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 C++ -
-> you won't 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. Isn't multiple inheritance a joy?
->
->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. I think the word 'synergistic' was
-> specially invented to twist the knife in a
-> project manager's ribs.
->
->Interviewer: I have to say, I'm beginning to be quite appalled
-> at all this. You say you did it to raise
-> programmers' salaries? That's obscene.
->
->Stroustrup: Not really. Everyone has a choice. I didn't
-> 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, it's impossible
-> to maintain a large C++ software module if you
-> didn't actually write it?
->
->Interviewer: How come?
->
->Stroustrup: You are out of touch, aren't 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 you've succeeded?
->
->Stroustrup: The universities haven't been teaching 'C' for
-> such a long time, there's 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 they've 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
-> shouldn't isn't. 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, you'll 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 it's 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 he'd help me write a C++ version of DOS, if
-> I was interested.
->
->Interviewer: Were you?
->
->Stroustrup: Actually, I did write DOS in C++, I'll give you a
-> demo when we're through. I have it running on a
-> Sparc 20 in the computer room. Goes like a
-> rocket on 4 CPU's, and only takes up 70 megs of
-> disk.
->
->Interviewer: What's it like on a PC?
->
->Stroustrup: Now you're kidding. Haven't 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, there's a guy
-> going to try it.
->
->Stroustrup: Not after they read this interview.
->
->Interviewer: I'm sorry, but I don't see us being able to
-> publish any of this.
->
->Stroustrup: But it's the story of the century. I only want
-> to be remembered by my fellow programmers, for
-> what I've 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 didn't before?
->
->Stroustrup: Hated it. It even looks clumsy, don't 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. I've always wondered about that.
-> Originally, I thought I had. Then, one day I was
-> discussing this with a guy who'd 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 you'll publish this. My conscience is
-> getting the better of me these days.
->
>-Interviewer: I'll let you know, but I think I know what my
>- editor will say.
->
->Stroustrup: Who'd believe it anyway? Although, can you send
-> me a copy of that tape?
->
->Interviewer: I can do that.