shadowkiss |
2002-12-20 10:29 |
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.
Stroustrup: ちょうどあなたが来る前に、そのことを考えていたところです。 憶えてますか? 誰もが C プログラムを書いていました。問題は、皆それが非常に得意だったことです。 大学でも、C を教えるのが非常にうまかった。 彼らは有能だということが分かりつつあった - 私は「有能」ということを強調しますが - そして、驚くべき人数が卒業していたんです。 それが、問題を引き起こした原因です。
Interviewer: Problem?
インタビュアー: 問題?
Stroustrup: Yes, problem. Remember when everyone wrote Cobol?
Stroustrup: そう、問題です。誰もが 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.
Stroustrup: はじめの頃は、彼らはまるで神でした。 彼らの給料は高かったし、まるで王族のように扱われていました。
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.
Stroustrup: その通り。そして、何が起きました? IBMは嫌気がさして、プログラマのトレーニングのために何億円も投資しました。 彼らが1ダースで10セント(訳注:珍しくもない、ありふれた、の意)になってしまうまで。
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.
Stroustrup: まさしくその通りです。 そして、同じことが C プログラマにも起きたんです。
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.
Stroustrup: ある日私は、オフィスに座って、ある小さな企みについて考えていました。 このバランスをちょっと修正できるような。 「非常に複雑で習得するのが難しいため、誰にもプログラマ市場をあふれさせることができないような言語があったとしたら、どうだろう。」と私は考えました。 実際のところは、X10、つまり X Windows(ママ) からアイディアをいただいたんですが。 あれは、Sun 3/60やなにかの上で走るだけにすぎない、ひどいグラフィクスシステムでした。 私の欲しかった素材は、すべて X が持っていました。非常にばかばかしい複雑な文法、あいまいな関数、仮想オブジェクト指向な構造。 今でさえ、誰も生の X-Windows(ママ)のコードは書きません。 正気を保っていたいなら、Motif が唯一の選択肢です。
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?
Stroustrup: いいえ、ちっとも。 実際、他の問題もありました。 Unix は C で書かれていて、どの C プログラマもごく簡単にシステムプログラマになれました。 メインフレームのシステムプログラマが、どれくらい稼いでいたか憶えていますか?
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.
Stroustrup: OK、ですから新しい言語は Unix から離れる必要があったのです。 この2つを非常にうまく結合していたシステムコールを、すべて隠蔽することによって。 このことで、DOS しか知らないプログラマでも、裕福な生活が得られるようになります。
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.
Stroustrup: もうずいぶんと時間が経ちました。 多くの人が、C++ は時間の無駄であると悟ったと思います。 私が想像したよりも長くかかりましたが。
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.
Stroustrup: あれは単なるジョークの筈だったんです。 人々があの本を真剣に受け取るとは思っても見ませんでした。 脳みそを半分でも持っている人なら、オブジェクト指向プログラミングは非直感的で、不合理で、効率が悪いということを見て取れます。
Interviewer: What?
インタビュアー: 今なんと?
Stroustrup: And as for ‘re-useable code‘ - when did you ever hear of a company re-using its code?
Stroustrup: そして、再利用可能コードに関しては、実際にコードを再利用している会社のことを聞いたことがありますか?
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.
Stroustrup: そういうことです。 念のため、早い時期にはいくつかの会社がやろうとしました。 オレゴンの会社 - メンターグラフィクスと呼ばれていたと思いますが - は、‘90年か‘91年に、全てを C++ で書き直そうという病気にかかってしまいました。 彼らについては非常に申し訳なく思いますが、しかし人々は彼らの例から学ぶだろうと思ったのです。
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.
Stroustrup: 全く、です。 問題は、たいていの会社は大きな失敗を隠そうとしたことです。 株主に30億円の損失を説明するのは大変だったでしょう。
彼らのために付け加えると、最後には彼らは成功しました。
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
Stroustrup: そうですね、大体は。 実行ファイルは巨大だったし、128MBのRAMを積んだHPのワークステーションでロードするのに5分かかりました。 動作もとろとろしていました。 私は、これは大きな障害になるだろうと思ったのですが、一週間もしないうちに、誰もそんなことは気にしないということに気付きました。 SunやHPは、小さなくだらないプログラムを走らせるだけの目的に、大量のリソースを積んだパワフルなマシンを売れるので、単純に喜んでいました。
我々が最初の C++ コンパイラをAT&Tで開発したとき、"Hello World"プログラムをコンパイルしたバイナリの大きさが信じられませんでした。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?
Stroustrup: そうですか? 最新の g++ を試してごらんなさい。0.5メガバイトも変わっちゃいません。
それから、ごく最近の例もいくつかあります。 ブリティッシュテレコムは大きな問題を抱えていましたが、幸いなことに、全てをスクラップにしてまたやり直しました。 彼らは、オーストラリアテレコムよりも幸運でした。 また私は、シーメンスが恐竜並みのものを作っていると聞いています。 彼らは、実行ファイルを格納するためのハードウェアのサイズが大きくなることに、ますます不安を高めています。
多重継承はなんとも楽しいじゃありませんか。
Interviewer: Yes, but C++ is basically a sound language.
インタビュアー: しかし、C++ は基本的には健全な言語です。
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.
Stroustrup: あなたは本当にそれを信じているのですね。 あなたはこれまでに、C++ のプロジェクトで働いたことはありますか?
つまりこういうことです。
最初に私は、小さなプロジェクトだけが動くような落とし穴を充分こしらえました。 オペレータオーバロードを例に取りましょう。 プロジェクトの終わりには、殆どのモジュールが使っているでしょう。 人々はたいてい、オペレータオーバロードを使うべきだと感じてるからです。 彼らが受けたトレーニングコースの例のようにね。 そうすると、同じオペレータなのに、違うモジュールでは全く異なる意味になります。 モジュールが100やそこらあるときに、全てを一つにまとめられますか。 データ隠蔽だってそうです。 あちこちの会社で、人々が彼らのモジュールをお互いにコミュニケートさせるときの問題を聞くと、私は笑いをこらえることができません。
「シナジェスティック」という言葉は、プロジェクトマネージャのあばら骨に刺さったナイフをひねるために特別に生まれた言葉です。
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?
Stroustrup: 必ずしもそうではありません。 誰も皆、自分で選択することができます。 私は、事態がこんなに私の手に余るとは思っていませんでした。 ともかく、私は基本的には成功しました。 C++ は今や死にかけていて、しかしプログラマは高いサラリーを得ています。 とりわけ、このすべての糞ったれなものを保守しなければならないかわいそうなプログラマは。 自分が書いたわけでもない大きな C++ のソフトウェアモジュールを管理するのが不可能だということは分かりますか?
Interviewer: How come?
インタビュアー: なぜですか。
Stroustrup: You are out of touch, aren‘t you? Remember the typedef?
Stroustrup: 事情に疎いようですね。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.
Stroustrup: "RoofRaised" が倍精度実数であることを見つけるためだけに、ヘッダファイルを手探りするのにどれだけ時間がかかったか憶えていますか?
大きなプロジェクトで、クラス宣言の暗黙的な typedef をすべて探すのにどれだけの時間がかかるか想像してごらんなさい。 |
|