Computer Chess Club Archives


Search

Terms

Messages

Subject: Bjarne Stroustrup interview

Author: Kai Middleton

Date: 21:58:16 02/11/98


Here is a rather incredible e-mail message I received from a friend of
mine who is a contract systems administrator for Unix systems at a
company in Boston.  I was a C programmer some years ago but have little
experience with C++ beyond one class I took.  The only part of the story
I can confirm is that the size of an executable for a small program (not
much more complicated than "Hello World") is in fact half a megabyte
using the unix g++ compiler.  I'm curious as to what C/C++
implementations people are using for their chess programs, and what
people think of the veracity of Stroustrup's supposed comments here.


>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.
>
>



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.