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