Some of you may find this interesting. > -----Original Message----- > From: Tom Unger > Sent: Friday, March 13, 1998 2:30 PM > To: Haakon MacCallum; John Bellini; Mike Mui > Subject: FW: Stroustrup Confesses about C++ > > I find this very believable (and no, unlike usually, I am not being > sarcastic). > > -----Original Message----- > From: Jeff Franchini [SMTP:jeff@jenosys.com] > Sent: Friday, March 13, 1998 11:25 AM > To: 'Cameron Alakija (Loamabong)'; 'Gary Catt @ Home'; Dale Mernett; > Doug Stead; 'Julia @ Home'; Kevin Tomm @ home; 'Steveadore'; Tom Unger > Subject: FW: Stroustrup Confesses about C++ > > This is probably a bunch of crap, but it's funny anyway. > ---------- > From: Paul Russell > To: Jeff Franchini; Tom Lightfoot; Peter Drexel; Carol Saunders; 'Jim > Russell'; 'Trish'; 'Wayne Wall'; 'Rex Legge' > Subject: FW: Stroustrup Confesses about C++ > Date: March 12, 1998 13:25 > > ---------- > From: "SCHICK, Stephen" > Sent: Thursday, March 12, 1998 11:51 > To: "'Ian Perry (gov't)'"; "'Steve Marinoske (work)'"; "'Paul > Russell'"; CHAKRABARTI Indranil; CHAN Edmond; "AUFFREY, Daniel"; > "DAVID, > Pierre"; GAUDIANO Linda; "NELSON, Jake"; "BUHR, Joshua"; KANG Susan; > "DELORIMIER, Marc"; "RYUMAE, Masaru"; ROBERTS William; "CONLEY, > Scott"; > "RUSLI, Teddy"; THOMPSON Brian; "WELCK, Troy"; VOURANTONIS George; > "HACKETT, William"; XU Cathy; PAUL > Subject: FW: Stroustrup Confesses about C++ > > Fucking bastard!! I'll kill him... > > >-----Original Message----- > >From: DIXON, Lisa > >Sent: Thursday, March 12, 1998 11:36 AM > >To: SCHICK, Stephen; LAWLOR, Jonathan > >Subject: FW: Stroustrup Confesses about C++ > > > >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. > >