- 论坛徽章:
- 0
|
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 theworld 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 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 Tele-
- com 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 proj-
- ects 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 ob-
- scene.
- 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, especial-
- ly 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. What-
- ever 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 $80 - $90 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.
复制代码
来源:http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml
[ 本帖最后由 rocklv 于 2008-12-5 14:43 编辑 ] |
|