FYI. I apologize if you've seen this already...mike > - - ------- Forwarded Message > > >Subject: Stroustrup's interview leaked... > > >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. > > > >[NJW Comment: That explains everything. Most of my thesis work was in raw > >X-windows. :)] > > > >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 inC++. > > > >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 of Forwarded Message