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.