|
Rockbox mail archiveSubject: RE: C++ in RockboxRE: C++ in Rockbox
From: Nick Robinson <notch_at_engineer.com>
Date: Wed, 26 Jun 2002 10:11:38 +0100 Okay okay I know it's off topic... apologies in advance... but I thought it was rather good... 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. > > [Note - for the humor-impaired, not a true story. Making the rounds - > ed.] At 11:05 26/06/2002 +0200, you wrote: >On Wed, 26 Jun 2002 Henri.David_at_nokia.com wrote: > > > I would say the main advantage of C over C++ for this project is that C > > produce Faster and Smaller code. in this project, i guess we need both, > fast > > ans small code. > >I would say no to both statements. It is all up to how you write your code - >you can after all write C-code with a C++ compiler. > >Naming a function lcd_update() or lcd::update() gives no difference. Björn >named the major advantages of using C. > >But the likelyhood that somebody will make terrible slow and large code >has increased with C++. People has a tendency to use everything C++ offers >just because it is there (streams, new-operator, overloading operators, etc). > >Let us protect ourself from those people :-) > > // Kjell Received on 2002-06-26 Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy |