The truth about c++ ... or maybe not
Bill Horne
bhorne.nouce at banet.net
Fri Apr 21 16:02:41 EDT 2000
Guys,
ROTFLMAO. It HAS to be true. Really, think about it. It's the
only thing that makes sense...
Bill Horne
-------- Original Message --------
From: "Suki L. McDonough" <macwiz at clearspring.com>
Subject: Fwd: Thought you'd like this a lot (fwd)
To: bhorne at banet.net
A giggle from the archives, for your amusement.
>Date: Thu, 26 Mar 1998 08:35:08 -0800 (PST)
>
>It's a little early for April Fools', but here it is. The truth will always
>be revealed in the end. :-)
>
>(Personally, I've always suspected this was the case...)
>
>John
>
>Fyodor writes:
>> From toad.com!cypherpunks-errors Wed Mar 25 21:53:03 1998 remote from n7kbt
>> Date: Thu, 26 Mar 1998 09:56:11 -0500 (GMT+5)
>> From: Fyodor <fygrave at freenet.bishkek.su>
> > Reply-To: fygrave at usa.net
> >
>> Heh... Wanna hear the C++ creator thoughts regarding the malevolent
>> creation, he made?:-)
>>
>> =========/qoute/=======================/quote/====================
>> [snip snip]
>> Date: Mon, 09 Feb 1998 23:31:02 -0800
>> 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 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.
>> 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 realize, 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 realize 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.
>>
>>
>>
>>
>>
>
>
>--
>John Opalko Clear Spring Associates, Ltd.
>john at clearspring.com Yamhill, Oregon, USA
>
> http://www.clearspring.com/
--
Suki L. McDonough of MacWizard!
(macwiz at clearspring.com)
"Put some magic in your Mac!"
-
Subcription/unsubscription/info requests: send e-mail with
"subscribe", "unsubscribe", or "info" on the first line of the
message body to discuss-request at blu.org (Subject line is ignored).
More information about the Discuss
mailing list