From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,LOTS_OF_MONEY autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,2e6b0aed6b810a10,start X-Google-Attributes: gid103376,public From: Thomas Hood Subject: A little OO humor Date: 1998/06/02 Message-ID: <35743773.41C6@ifn.com> X-Deja-AN: 358851371 Content-Transfer-Encoding: 7bit Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: newsabuse@supernews.com X-Trace: 896808736 UWZVVBCWS88AAD0D9C usenet52.supernews.com Organization: Internet Financial Network Newsgroups: comp.lang.ada Date: 1998-06-02T00:00:00+00:00 List-Id: This has with it as much attribution as I received it with... I hope BS doesn't get too bent outta shape by it. Thomas Hood thomas@ifn.com > > The truth about 'C++' revealed > > cddukes@unity.ncsu.edu > >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.