Spoof C++ Interview with Bjarne Stroustrup

Date: Thu, 2 Apr 1998 10:04:13 +0000 (GMT)

From: ?
Reply-To: ?
Subject: Stroustrup and C++
To: ?
Content-MD5: Ci68cXoq9JFIcZYU3zAhhQ==
X-Mailer: dtmail 1.2.0 CDE Version 1.2 SunOS 5.6 sun4m sparc 
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"

------------- Begin Forwarded Message -------------

To: ?
Subject: Stroustrup and C++
Mime-Version: 1.0
>>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 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 treacle.  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 g++ - 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: 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?
>>    I'll tell you.  One to two years.  Isn't that great?  All
>>    that job security, just through one mistake of judgement.
>>    And another thing.  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..
>>
------------- End Forwarded Message -------------