ObjectSquare [2001 年 1 月号]

[OOエンジニアの輪!]


OOエンジニアの輪!

〜 第7回 金澤典子さんの巻 〜

今回のゲストは金澤典子さんです。 InArcadiaから2回目のゲストとなりました。
金澤さんは翻訳などでとても精力的にご活躍されています。今回は翻訳への想いなどについてお伺いしました。

(2000年12月27日更新)
金澤さんが「OOエンジニアの輪!を楽しむための。。。」を書いてくださいました。記事ではお伝えできなかったこと、暗に語られたことなど、補足してくださってます。併せてご覧ください。


尊敬する人ゲーテ
ジョイス(文学者)
ファインマン(物理学者)
ワインバーグ(ソフトウェア思想家?)
好きな言葉「夢は行動という現実へ移る。行動から再び夢が派生する。」
「友人はそれぞれ私たちの中にある世界を表している。」
どちらもアナイス・ニンの言葉です。

はじめに

--- 初の女性エンジニアですね。

あ、そうなんですか。光栄です。

--- 平鍋さんからご紹介を受けたのですが、平鍋さんとのご関係は?

ベストフレンドの1人ですね。そもそものきっかけは James O.Coplien の「 Multi-Paradigm Design for C++ 」の翻訳だったんじゃないでしょうか。 以前からメールではお会いしてましたけれども、直接お会いしたのは ObjectDay が初めてだったと思います。

--- ObjectDay は出会いの場ですね(笑)。

あ、いま思い出しました。その前に、お客様のオフィスでお会いしたような気がします。でもそのときは風邪でぼーっとしてて。
なので、実際にソフトウェアのお話をしたのはObjectDayですね。平鍋さん以外にもたくさんの方と知り合いになりました。そういえば次回に紹介させていただく杉浦さんと久しぶりにお会いしたのも前回のObjectDayでした(笑)。

平鍋さんって、いいですよね。 平鍋さんって理想と実践の区別を明確に持ってらっしゃるんです。理想ってそれは大切なものなのだけれども、 実際の業務ではその通りにいかないところってありますよね。でも、その辺をきちんと解ってらっしゃるところがすばらしいです。

--- オブジェクト指向を始められたきっかけは何ですか?

青木さんの Smalltalk 本(「 Smalltalk イディオム」青木 淳 著 1997年ソフト・リサーチ・センター)の「元ねた」を読んだのがきっかけでした。

--- あの本はいいって言われてますね。Smalltalk はやられるんですか?

Smalltalk はやってないんですが(笑)、考え方っていうか。

それまでは、ドキュメントの形式を覚えただけで、プロジェクトから学んだものが残らなかったんですよね。 フローチャートにしてもダイクストラを超えなくて、言語のドキュメントでしかなくて。 方法論としては完成されていないと思いました。

--- そうですね。これまでは結果を記述するだけで、その過程とか考え方を残す方法がなかったですね。

要件定義をプログラミング言語へとつなぐことができませんでしたね。オブジェクト指向になってずいぶんよくなったと思います。


翻訳への想い

--- 本を出すのはどうですか?

ソフトウェアで本書いてもお金にならないですよ。

--- そうですよね。すっごく大変なのにもうからないですよね。

3000部出たら「売れた」、1万部いったら「ベストセラー」ですよね。“OMT”と“GoF”が2万部で、酒匂さんの訳されたMeyerさんの「 オブジェクト指向入門 」(アスキー出版)が1万部だそうですよ、正確には知りませんがそういう噂です。

--- ご自身の本の中でお薦めっていうのはありますか?

もちろん、すべてお奨めです(笑)。いま愛着を持っているのは「 C++ FAQ 」ですけれど。これは第1版を訳せないうちに、原書の第2版がでてしまって。けれど、第2版のほうがずーっと内容が良かったので、諦めないで訳すことができました。 オブジェクト指向システム、特にコンポーネント化を意識してシステムを開発する上で、C++ を使うときのツボが全般的にまとめてあって、他の C++ 本とは少し異なった仕立てになっています。ただ少し説明が足りないな、と思う箇所もあって、それが気になっているのですけど。ただ、訳者がおせっかいしすぎるのは、好きじゃないんですよね、自分が読んでて。

--- 翻訳って大変じゃないですか。動機は何ですか?

日本とアメリカでは開きがありますよね。 日本ではオブジェクト指向が一人歩きしてますけれど、アメリカではオブジェクト指向は当然で Beyond OO なんです。 オブジェクト指向を超えて、再利用を知識のレベルで行うってことに着眼していて、ソフトウェアをファミリで捉えてるんですね。例えばWeiss さんの本とかに、すでにその実践のための方法が書いてあります。これこれ、持ってきました  (David M. Weiss, Chi Tau Robert Lai, Software Product-Line Engineering: A FamilyBased Software Development Process, 1999, Addison-Wesley)。 この本の翻訳が出ればいいなと思っているのですけれど。

--- 広くやってますよね。元気ですね(笑)。

遅れている Coplein の本の翻訳は、ヒゲのおじさまばかりに頑張らせていますけれどね(笑)。平鍋さんと私はやきもきしてるんです。

--- 金澤さんも分野が広いですよね。

翻訳のきっかけは、ほとんどはアクシデントです(笑)。 どうしてだか、その翻訳をやらなくちゃいけない状況に追い込まれちゃうみたい。 今訳してる本は、自分がほんとに訳したくて、訳し始めたのですけれど。 モチロン、どの本の場合も訳している最中は、もちろんこの本を訳したい、って思ってますけど(笑)。

--- なぜそんなにやられるんですか?

うーん、あまり考えたことないんですが ―― まずは私が知りたいって動機があって ―― 日本と海外とのギャップをすこしでも埋めたいのかもしれませんね。

--- 私、OOPSLA に行って来ましたが、日本とアメリカとやってる内容はそんなに違わないと思いましたよ。あ、なんだ、っていう感じで。ただバックグラウンドが広いのは確かですね。いろんなムーヴメントの一つとして XP が存在してますし。

そういうところもありますね。今年、PLoP に参加して来ましたが、私が見ても使い物にならないなと思うようなパターンが取り上げられていたりもしました。 でも、まず規模で負けてますね。向こうはすばらしい人がたくさんいらっしゃいます。Kent Beck さんとか、Kyle さんとか、Ali さんとか、Ed さんとか、Yoder さんとか、・・・・、すばらしいです。あ、いま挙げたのは、PLoP で私と同じグループでパターンの議論をしたメンバなんです。そうそう、それから James O. Coplien とか(笑)。

--- ちょっと変ですけどね(笑)。

ええ(笑)。 あと根本的に違うところで、日本では真似はするけど、チャレンジしないですよね。 それから、抽象的な話が受け入れられないです。 セミナーとかでも、「オブジェクト指向」ではだめで、例えば 「UML」 という具体的な規格をタイトルに含んでいないと、人が集まらなかったりします。 いまは、Web アプリケーションのおかげで、オブジェクト指向のお株が上がっていますけれど、その製品や規格の背景にあるものは無視されていると思います。 現在(いま)は、幸か不幸か、Java などの影響でオブジェクト指向をやらざるを得ない状況になってきてますね。 組み込み系システムでも。

--- ええ、組み込み系システムではかなりニーズがありますね。

オブジェクト指向そのものより、そのバックグラウンドにあるもの、基本的な考え方や歴史やユニークな発想が伝えられたらいいと思ってます。そういうものを日本の技術者のみなさんと共有したいですね。 そして、実務の場で仕事に楽しみを見い出せたら、ユーザーも管理者もエンジニアもみんなハッピーだったらいいってところですね。 そこを変えていきたいです。

--- 休日はどのようにすごされてますか?

昼も夜も関係なく翻訳してます(笑)。

--- (笑)やっぱり動機を知りたいですね。

そうですね。実務者が知識を必要としているときに、すっと入れるようにしたいんですね。 そういうコンテキストって言うか、流れを作りたいし、自分がそういうものを欲しいんですよ。

--- マイルストーンになるものを翻訳されてますよね。「デザインパターンプログラミング」ですとか、「ソフトウェアアーキテクチャ」ですとか。

そうですね。 でも、「 C++ FAQ 」も、「 Multi-Paradigm Design for C++ 」も、1998年の本じゃないですか。 翻訳本の出版が2000年じゃ遅すぎますよね。


ハードの制約からビジネスの視点へ

--- お好きな言語は何ですか?

アセンブリ言語です。

--- おお。アセンブラですか。

アセンブリ言語って、こうコンピュータが動くんだってことを明確に示してますよね。そういう意味では OOPL ってリアルじゃないですよ(笑)。

その次に好きなのは C 言語です。特定のことをやるっていう点では COBOL もすばらしいと思いますね。RUBY は思考を助けてくれるっていうところがすごいと思います。

--- Java はどうですか?

Java よりは C 言語のほうが好きですね。変形していくところとか、アスペクトオリエンテッドなところとか。C 言語のほうがいいですね。 それに、Java は遅くていやです(笑)。 でも、Java と UML がなかったら、日本のオブジェクト指向は影も形もなくなっていたかも知れませんよね。

--- 最近は、アセンブラ、教えないですよね。

やっぱり、ちょっとやったほうがいいですよね。アセンブリ言語じゃなかったら C 言語でもいいですけど。 実はこうやって動いてるんだな。その上にかぶさってこんなに複雑なことをやってるんだけれども、 その間に、こんなことがあってってところを理解したほうがいいですよね。

--- アセンブラあたり一番分かりやすい切れ目だと思うんですけど、ただ、私最初何年間もアセンブラやってたんですが、 よく言われたのが、パイプラインですとかハードの動きを分かってないといけなくて、アセンブラが最終的なところなのかっていうと、実はそうでもない。 アセンブラっていうのはある抽象レベルで非常によくて、C 言語もポインタってことでアドレスを抽象化してますよね。

C 言語はもうアセンブリ言語と等価だと思ってます。

--- 今はアセンブラが分からなくても、C が分かればいいって時代なのかなって思います。

そうですね。でも、言語が分かっててシステムが作れるかっていうと問題ですよね。

--- 私の時から言われてたんですけど、今の人は覚えること多くて大変だねって。 今、やっぱりそうですよね。どこから始めるかっていうと

アセンブリ言語からだと大変ですね。友達が Java の考え方を教えるのに C で説明してたっていうんですね。こういう風になるのかな。やっぱり。

--- 今、C がスタートポイントだと思うんですけど。

そうですね。いや、Java がスタートポイントで C に戻るのがいいんじゃないですか(笑)。

ただ、今は機械にそんなに振り回されてちゃいけない時代ですよね。お客様のところで組み込み系やってて、今は機械の制約よりもビジネスの制約っていうか、 ビジネスの発展にどうやって貢献するかってところに移ってるじゃないですか。

--- 大規模な組み込みはそうですね。そうだと思うんですけど、リソースの制約ですとかものすごく気にされてますよ。パフォーマンスですとか。

パフォーマンスの部分はそうですよね。

--- 必ずしもそれが本当に必要なのかっていうと、そうでもないと思うんですけど。

私もそう思うんですよ。完全にシビアになるっていうのを、今までの視点ではなくて、もう一段高い視点から見る必要があるんじゃないかなって思います。 つまり、全体の中の、っていう視点ですよね。お客様のところでもビジネスってところに到達してて、Web アプリケーションと組み込みとが完全に一体化していることを要求されてるところがありますよね。 それで、全部リアルタイムでっていうようなことを要求されてませんか?そうするとすごくシビアじゃないですか。

--- 私がやってるのもそういうシステムですね。

何段階かあると思うんですけど、一番失敗したら怖いのはビジネスの部分ですよね。その中に次の発展性の部分を組み込んだ部分ですよね。 でも、個別には作らないでプロダクトラインって考え方を組み込んで、再利用がうまくいくようなものを作って。 ハードウェアから制約のあった部分はなるべく楽にして。うーん、シビアですよね。組み込み系のエンジニアの方は。


日本人って何でしょう?

--- ソフトウェア関連以外で何かありますか?

大学行ってるんですよ。通信大学です。もう7年か8年になるので、そろそろ卒業しないといけないですね。

--- 何を勉強されてるんですか?

日本文学を勉強してます。スクーリングが楽しいですね。なぜ日本文学を勉強してるかといいますと、日本文学嫌いだったからなんですよ(笑)。 思いませんか?なんで日本人なんだろうって。太宰治とか、あまり好きじゃないなーって。

--- 近代文学がご専攻ですか?

卒論は、できたら古事記で書こうかなって思ってます。

--- おー、古事記ですか。ちょっとだけ好きです。

いいですよね。あのおおらかな時代が。

--- おおらかで、書いてあることすごいのばっかり。

そうそう(笑)。

--- 歌がよくないですか、古事記は。

歌がいいですよねー。特に好きなのは、初期の和歌形式になる前のものです。 そういう意味でいえば、初期万葉もいいですね。初期万葉で好きなのは雑歌で、 中皇命(なかつすめらみこと)の三番歌が好き。 古事記で書けなかったら、いっそひねくれたところで世阿弥にチャレンジしようかなぁ。

--- あと、何かの本で仏像がお好きだと書かれてましたね。

ええ。昔、大阪にいた時から、学生時代は京都や奈良には毎週行ってました。今でこそ行けなくなりましたけど。自分が生まれてきて、日本人って何って思いませんか?奈良で開催されたシルクロード博を見たときに、地域によって仏像ってぜんぜん違うということを発見して。日本の仏像は日本の仏像ですごく特殊ですよね。そういう意味で、他の文化と比較するっていう意味で、仏像鑑賞好きなんですけれどね。

--- 特に好きな仏像はなんですか?

それはモチロン法隆寺の百済観音です! あれは日本製じゃないんですが。

--- そうですね。百済製なんですか?(笑)

そのとおり(笑)かな? 少なくとも、日本人にはあんなのは作れないと思います。一番最初にぱっと見たとき、こうすごく細いんですけど、宇宙に伸びていってる感じがして。

--- 宇宙に伸びていってるって見るんですか。

日本の仏像はまっすぐなんですが、韓国の仏像ってみんなそうなんですけど、すこしS字だから、うねって宇宙に伸びていくような感じがするんですね。すごく細くて壊れそうなのに宇宙にまで伸びていく感覚って、すばらしいなーって思いますね。


海の向こうの事情

--- オブジェクト指向の好きなところってありますか?

オブジェクト指向って何でしょう。いろいろありますよね。

--- それでは、オブジェクト指向って何ですか?

オブジェクト指向でプログラミング言語っていったらすばらしいですね。でも、方法論っていったら、方法論は、、「ちょっと横に置いておきましょう」って思うんです。

--- どうしてです?

これから発展していく方法論は、ハッサン・ゴマさんのCOMET(Concurrent Object Modeling and architectural design mEThod)みたいなものだと思います。あ、これです(H. Gomma, Designing Concurrent, Distributed, and Real-Time Applications with UML, 2000, Addison-Wesley)。 オブジェクト指向が中心じゃなくて、リアルタイムシステムの構築がテーマ。いままで成熟してきた知識や開発のノウハウがあって、そこにオブジェクト指向を取り入れたらときにこうすれば、っていう方法論じゃないですか、COMETって。専門分野、アプリケーションの特性を捉えたような専門分野の方から方法論って提案されていいんじゃないですか?そういうのだと役に立つんじゃないかなと思います。

--- 一般的過ぎて役に立たないってことですか

なんて言うかな。今まで、クラス抽出するの大変なことは大変なんですけど、それだけじゃあんまり役に立たないですよね。実際にプログラミングすると、なんか分析でやったのと全然違うクラスいっぱい出きますし。分析で、モデリングのその部分に時間を掛け過ぎるのって役に立たないなーって。

--- 私は好きですよ。

そうですよね(笑)。あっ、でも必要なレベルもあるんですよ。その後システムとして発展していくために。

--- ええ。

でも、それよりも設計って部分で綺麗な形にできるといいなと思います。設計も難しいですよね。

--- 難しいと思います。

もっとパターンに期待してましたけれども。

--- そうですか?パターンもいいと思いましたけれども。

パターンはパターンで評価してるんですけど、設計っていう部分にもっと関係して出てくるものがあってもいいなって。PLoP に行った時に、私のグループで発表されたものをみて、これでは役に立たないなって思ったんですよ。PLoP の HP で公開されるときには、多分、洗練されて出てくるのでしょうけれど。

--- パターンにもたくさんあって、自分の興味と合わないものもたくさんあるとおもいますよ

PLoP に行って思ったのは、一つは「パターンだ」っていって、実装されないでただモデリングできたからって提出されている。それは実装に近いところで提案されたパターンだったんですけど、あるアプリケーションを構築するためのパターンだっていって出されてるのに、おそらく実装されないでモデリングだけで終わっている。その後実際に動かしてみたら問題が発生するかもしれないというところが何も見えてないのに、モデリングで完成したように見えるから「これはパターン」だとかいうのは、問題じゃないかなって思いました。

だから、レベルを分けたらいいんじゃないですか。レイヤーといったほうがいいのかな。ビジネスのレベルあるいはレイヤーではこういうモデルが必要です。抽象化されて、言語が特定されないレイヤーではこういうことです。という風にきっちりされていればいいと思います。PLoP に行ったときに議論したパターンのいくつかは、それがごっちゃになってて分かれてなかったですね。ソフトウェアパターンがこうであれば利用しやすい、考え方を共有できる、私たちが後の世代につなげられるような財産になる、ということが、まだ世界のエンジニアの一般認識にはなっていないんでしょうね。

でも、コメントはすばらかったです。Beck さんとか、Kyle さんとか、Ali さんとか、、、(笑)、またみんな挙げてしまいそうですね。PLoP はよい勉強になりました。自分が仕事をしていく上でのポイントを教わりました。素敵な人たち、海外の技術者と知り合えたという意味だけでも、よかったですね。そうそう、ちょっとソフトウェアの話からははずれますが、Beck さんは、韓国の方が書かれたパターンをディスカッションするときに、大きなカードを持ち込んで、グループのみんなの前で、「 Slowly 」と書いて、パターンのライターに手渡したんですね、そして「ボクたちネイティブが議論に白熱して、聴き取れないことがあったら、そのカードを提示しなさい」と。パターンのライターは議論の最中発言権がありませんから。言語の壁を超えてパターン、ソフトウェア構築の知識ですか、を共有しようという想いからもあるのでしょうね。Beck さんといえば翻訳者泣かせという噂を聞いていましたが、ほんとに親切なかたで感動してしまいました。でも、「リファクタリング」の翻訳の時は大変だったみたいですね、Kent Beck さんの訳は(笑)。

--- そうそう、大変っていうか、Martin Fowler は綺麗に文章が書けてて、そのつもりでやってたら、おっとこれはなんだって(笑)

思っていることはもっと内側にある人なんですよ。でもいいと思いますけど、XP。12のプラクティスって美しいですよね。思い切って全部取り払ってみて、そこから始めてみようっていうのがいいですよね。でも、評価って意味で言えば、評価するポイントは何も提示してないですよ。

--- 私は、どちらかと言えばアンチ XP ですね

私は、実際にシステムを作るときに XP って思うんじゃなくて、今までシステムを開発するときにどういうことをやってきたかっていうのを、内省的に観察する、あるいは外部から観察するための道具として XP はいいと思います。だけど、自分がこれからプロジェクトをやるのに XP っていうのは、それはちょっと遠慮します(笑)。

--- そうですね。いろいろ前提条件が必要ですね、あれをやるには。理想の状態だとは思いますが。

羽生田さんがオブジェクト指向シンポジウムでおっしゃってたんですけど、今までの方法論には人間っていうのが欠如していた、と。それを聞いて、さすが、って思いました。 人間っていうのを考慮するために、自分あるいはその組織を見るためのツールとしては、XP はとってもいいんじゃないでしょうか。 それでシステムが作れるとは思わないですが。

--- 確かに、わざと極端にやってるんでしょうけど。

私、Kent Beck に会ってなかったら、XP 好きになれなかったと思います。 会ったので、あ、この人はこういう人なんだな、物事を大胆に言ってみちゃう人なんだなって思いました。本音は違うところにあると思うんですけどね。

--- XP 見て思い出したのが、労働管理の理論ですね。ある工場でぶっ通しで働かすのと、休憩を取らせてお茶を飲ませるのとでは、どっちが生産性が高いかっていうと、休憩を取らせたほうがいいっていうのがありますよね。 それは完全に管理しながら少しですけれど。XP は労働者の方が一方的に労働者の言い分を全部ぶつけたような感じで、RUP なんかは管理者からばっかりなので、ちょうど真中あたりがいいじゃないかなと思います。

どうなんですかね。RUP は XP を含んでいるなんて議論がされていたこともありましたね。

--- Jacobson も言ってましたよ。XP 用の RUP を作れるはずだとか言って、大爆笑でしたけど(笑)

それはおかしいですよね(笑)。

--- みんな意味が分からないとか言ってましたけど。

Coplien は XP 嫌いですよね。

--- それはKent Beck さんが嫌いなんじゃないですか(笑)。海の向こうの話ですけど。

(笑)あんまり重要じゃないですね。ともかく、私はお二人とも大好きです。 考え方も似てると思うし。そうだ、海の向こうはおいといて、XP と Coplien の組織パターンを融合してそれを超えるものを日本人が提案するっていうのはどうでしょうね(笑)。


次回は?

--- 次回のゲストの方を紹介していただけますか?

次回はプロジェクト管理について話してくださると思います。

その方は、私が初めてお会いしたときには、まだオブジェクト指向初心者で、それでもこれからオブジェクト指向のプロジェクトを始められる方だったんですが、 管理者としてすばらしい方で、他からはいろいろと反対があるのに、 その人がマネジメントしたからまずオブジェクト指向の芽がそこに生まれて。

彼が取り組んでいたのは組み込み系のシステムだったんですけども、まず試験的にオブジェクト指向の開発を開始したんですよね。 そして並行して、実務のほうではいままでの手法で同じものを作っていたんです。 組み込み系だから、途中で要求変更すごくたくさんくるじゃないですか。 それでそのときには従来手法でやっていたほうはどうにもならなくなっちゃって、オブジェクト指向で試験的に開発していたシステムで、最終的に乗り越えたんですよ。

そうやって成功させたプロジェクトマネジメントの力というのをぜひ聞いていただきたいですね。 ファミリのシステムの構築を三回繰り返してようやく再利用がうまくいったという話も伺っています。 どのようにして再利用にまでこぎつけたかというお話もぜひ聞いてみてください。


--- 何か宣伝されたいことはありますか?

「 Multi-Paradigm Design for C++ 」の翻訳は紹介されちゃってますからね。(訳題「 C++ のためのマルチパラダイム・デザイン(仮題)」、出版社:ピアソンエデュケーション、2000 年末出版予定)

--- いいですよ。もう一度プッシュしておきましょう。他に何かありますか?

オブジェクト指向シンポジウム2000で Coplien が基調講演したんですけども、その時の講演内容を書き留めてくださっているんですね、実はそのノートをそのままほとんど読んでくださったんです。そのノートの部分を桜井麻里さん、 「ソフトウェアアーキテクチャ」の訳者の一人ですが、彼女が訳してくださったので、InArcadia のホームページからリンクさせていただきます。

https://www.rcnchicago.com/~jcoplien/Nippon/EastMeetsWest/index.html

オブジェクト指向シンポジウム2000 に参加できなかったかたにも、参加していただいた方にも読んでいただきたいですね。 私は、実は「パターン界」では著名な C. Alexander の著作って、あまり乗り気になれなくて敬遠していたんですけど、この基調講演を聴いて、読んでみようかな、っと。 あれ、いま、何月でしたっけ。まだ、読み始めてませんね(笑)。

え、もう終わりですか。OOエンジニアの輪の「初の女性エンジニア」って感じの話になりませんでしたね(笑)。


© 2001 OGIS-RI Co., Ltd.
Prev Index Next
Prev. Index Next