酒井法雄の電脳な日々

コンピュータサイエンスとソフトウェア開発

2:32 96/10/15


最近のソフトウェア業界の流れの速さといったら、まったくどうなっているのだろう。ついこないだまでWindows 95で騒いでいたと思ったら、今度はインターネットだ。我々の仕事の内容も、C/Sからイントラネットにシフトしている。それにともない、JavaだのJava ScriptだのcgiだのActiveXなんとか...という具合だ。しかも、それらがどういうものであるかを把握する前に次のバージョンが出たり、話が変わったりする。とてもじゃないが、すべてを把握することなんてできない。
ソフトウェアだけではない。ハードウェアだってそうだ。CPUの高速化、メモリやデータストレージの大容量化、ビデオやイーサネットの高速化と、すべてがものすごいことになってきている。

しかし、こうしたソフトウェアやハードウェアの急激な変化は、本当に進歩なのだろうか。そう考えると、疑問も出てくる。
実際、Windows のようなリソースバカ食いOSが出てこなかったら、こんなハードウェアも必要ないし、ソフトウェアの流れも変わっていたのではないだろうか。そして、Windows になって本当に良かったのかというと、必ずしもそうでない側面があるのは事実だ。たとえば、DOSで作成された業務ソフトウェアをWindowsに載せ換えたとたん、使い勝手が悪くなったなんてのはよくある話だ。
そして、まずいことに、こうしたハードウェアやソフトウェアの流れは、さらに加速しているように思えるのだ。我々などは仕事で使うからしかたないが、半年後には型遅れになって、2年後には使い物にならないコンピュータに、一般の人たちが決してこずかい銭程度ではない金額を出して買う価値があるのだろうか。もちろん、我々だって無駄に投資できないのは同じだ。
こんなことは皆分かっているだろうに、やめられないのは、買わないと時代に取り残される的なマスコミの過剰な報道によるもののような気がする。もちろん、それでこの業界全体が潤うわけだから、そんなことに愚痴をこぼしてはいけないのかもしれない。
しかし、何か違うのではないだろうか?

この辺の話は、今月売りのDr. Dobb's Journal日本版にも書いたことなので、どうもダブってしまうのだが、勘弁してほしい。
もう一つ、これは変だぞと思うのは、最近のWindowsなどのプログラミングだ。
いわゆるコンピュータサイエンスからは、ずいぶんと離れたものになってきているような気がするのだ。いや、何も Quick Sortだののプログラミングをしないといけないなんて話ではない。しかし、プログラミングは数学である。そして、芸術でもある。そうした美しいものからどんどん離れて行ってしまっているのではないか。
美しくなくても仕事になればいいというのは、資本主義において正しいし、私もそういう仕事をしている。だからなおさらイヤになるのである。

かつて学生のとき、私はコンピュータサイエンスを勉強するつもりでキツいアルバイトをしてパソコンを買った。そこから私の人生が狂ってしまったわけだが、まあその前にもアマチュア無線とか電子工作で散々狂ってしまっていたので、そんなことはどうでもいい。私にとって重要なのは、パソコンは飯のタネだが、コンピュータサイエンスへのパスポートでもあることだ。もっとも、私は大学ではまったく違う勉強をしていたから、コンピュータサイエンスは趣味のままだということも、このへんの話の根底にある。
思うに、Windowsでのプログラミングは、OLEにしても、C/Sにしても、Windows APIにしても、あまりコンピュータサイエンスではなくなっている。もちろん、その基本を作る部分はコンピュータサイエンスなのかもしれないが、我々が面しているのは企業の都合で作られた製品にすぎないのだ。それがたまらなくイヤなところだ。
こんなことは悩んだところでしょうがないのだが、いたずらに速すぎる進歩と、米国企業に躍らされる我が同胞の姿を見るにつけ、なんとかならないのだろうかと思ってしまう。別に日の丸OSを作ろうなんて話をするつもりはないのだが...

そんな折り、ふとしたことで数年の間連絡を取っていなかったK君とメイルを交わすことになった。
彼とはパソコン通信仲間で、10歳近く歳は離れている。おそらく、よくチャットをしていたというようなことがあって、他の仲間と一緒に高校生の彼を連れて熱海に花火大会を見に行ったりしたものだった。ここ数年というもの、彼らの多くとは音信不通だったのだが、突然当時の仲間の一人が亡くなってしまった。これは私にとっても大変ショッキングなことだったのだが、それはさておき、そういうわけで当時の仲間に連絡を取ろうということになった。
K君の自宅に電話してみると、何と彼はイリノイの大学院でコンピュータサイエンスを勉強しているという。うーん、NCSAじゃないのか。こちらのメイルアドレスを家族に伝えると、まもなく彼からメイルがきた。uiuc.eduだ。これにはちょっと焦った。私がつまらないプログラムを作ってうだうだ暮らしているうちに、彼は世界でももっともホットな場所でコンピュータサイエンスをしていたのだ。

そんなわけで、K君とのメイルが始まった。などというと、ずいぶんといろいろな話をしているような感じだが、実際には二人とも気が向いたときに結構長いメイルを書くというようなことをしているので、あまり話は進んでいない。
しかし、そんな中でも、先ほどのような疑問を彼にぶつけてみた。それに対する彼の考えの一部を引用しようと思ったが、こないだの返事をちゃんと書いていないので、引用の許可だけもらうのもヘンな話だ。とりあえず、私の送ったメイルから抜粋しよう。


> ありがとうございます。コンピューター科学については、僕はもともとそう呼ばれる
> ものが存在すること自体よく知りませんでした。で、大学に入ってから「一体コンピ
> ューターを科学にするとはどういうことだ。」という素朴な疑問を持ち続け、期待と
> ともに三年以上過ごしてようやくわかったことは、そんな科学はまだ存在しないとい
> う事でした。「コンピューター科学」として一つの体系にまとまる学問にまでなって
> いないのです。ことに理論的になるほど実際的な問題との接点がなくなります。(計
> Z理論とか、応用できる分野はありますが、極めて限定的です。それに計算理論自体
> この二十年間進展がありません。)

確かに理論と実践では格差があるのは分かります。しかし、理論的な裏づけなし で経験からその場で新しい仕様を作るのには無理があるのも事実で、実践的な場 でもやはり理論が必要です。
たとえばオブジェクト指向OSとか、分散環境とかですね。しかしこれらはやはり 分けるとすると、実践的な部分になるのでしょうか。

まあ何にしても、ソフトウェアの開発も階層化というかコンポーネント化が進 み、妙なGUIが幅をきかせているので、理論よりも動くモノはどれを使えばでき るのか、バグはどう回避できるのかということがテーマで、さっぱり面白くあり ません。言うならば、バカが作ったものを使わなくてはならない悲劇ですね。そ の点、unixなんかだとソースが公開されているので、バカな部分を見つけるとか 直すとかも可能なのでいいのですが。

> もちろん大学等の研究を通じて生まれた成果はたくさんあります。ただそれは科学と
> は関係なくて、むしろ工学的であり、しかも研究者のセンスに負うところが多いです
> 。大学で学んだことが直接役に立つ場合というのは、おそらく学際的な場にのこって
> 研究をする場合がほとんどでしょう。「研究」という技能とそういう世界での立ち居
> 振る舞いを習うということでは、大学は役に立ちます。

科学と工学というのは、いつの時代でもそういう関係ですね。
たとえばバベッジが機械式のコンピュータ、つまり階差エンジンとか解析エンジ ンを理論的に考えたときにも、実現には腕のいい職人が必要で、そこから逆に当 時は単なる職人芸だった工業分野を科学的に、経済的に研究していったという経 緯があります。
レンズなどの光学製品もまったく同様で、それまでは職人芸だったものを理論化 して、同時に商業的にも成功させたのはドイツのCarl Zeissですが、その立て役 者はCarl自身ではなく、学者だったErnst Abbeだし、光学材料の分野ではDr. Otto Schottでした。
やはり、工学的に優れた才能とかスキルを持った人がいて、さらにそれを理論的 に支える学者がいないといけないということですね。人間はどうしても経験的な ところからスタートするのですが、コンピュータのソフトウェアみたいな物理的 に実体のないものの場合には、どうしても理論先行で行かざるを得ないというよ うに思っていたのは間違いなのかもしれません。

それにしても面白いのは、バベッジにしても、Abbeにしても、工学的なものと科 学的なものをまとめただけでなく、経済や政治などにも関与したことです。バベ ッジは、ニュートンの遺産の上にあぐらをかいて進歩しなかったイギリスの科学 界をなんとかするために、あるいは解析エンジンなどを作るために、さらには当 時主流ではなかったけれど理論的には優れた広軌の鉄道線路を広めるために、政 治的なことをしています。最初の目的以外はみんな失敗していますが...。しか し、彼の工業を発展させるための理論的な思想は、マルクスなどにも影響を与え ています。
一方、Abbeは100年以上前に8時間労働制や、年金、退職金制度、さらには会社自 体を財団にして社員全員が参加するという社会主義的な考えを導入するなど、当 時は考えられなかったことを実現しています。幸い彼が実現したのは自分の会社 内部での話ですから、比較的実現は容易だったのかもしれませんが、それにして もすごいことだなと思います。

今までがこうだったから、今度もそうだなんてことは言えないのは重々承知です が、1/f理論とかフラクタルとかカオスとかあのへんの話からしても、時間的な 繰り返しは理論的に起こるような気がします。だとすれば、コンピュータにおい ても、そういう役割を果たす人たちが出てくるのかもしれませんね。

なんだか、とりとめもない話になりました。

> 次に日本に戻ったときは是非お会いしたいです。

そうですね。こちらは小田急線の喜多見駅が最寄りになります。世田谷通り沿い で、野川という小さな川が流れていて、都内には珍しくカワセミとかコサギ、チ ドリやシギなどの野鳥がいるところです。
一度、遊びにきてください。


というような話をしている。
実際には、これに対する返事でまたまた面白い話があるのだが、それはまた次の機会にしたい。
とりあえず、私は工学的なアプローチの人間なので、科学的側面で自分のやっていることや、実務を分析していくことから始めれば、たいしたことはできないだろうが、それなりには自己満足できる程度の 何かができるのではないかと思っている。
しかし、若い人たちがコンピュータを学ぶには、今の環境はあまりよいとは言えないようだ。
数年前までインターネット黎明期に大学でそのへんをいじっていた連中は、かなりのスキルがあったのだが、最近ではシステムもそれなりに完成されているため、若い学生はWWWおサルになっている人が多いとか。学生アルバイトを雇おうにも、以前よりデキる人が少ないようだ。もっとも、うちのバイト君はデキるので大変助かっている。若者にはハッカーになってほしいものだ。

ちなみに、DDJJの連載は今月でとりあえず終了する。ちょっとお休みをいただいてから、あらためてアルゴリズムなどの話をしらじらしくVisual Basicを使ってやろうと思っている。無茶と言えば無茶だし、意味がないと言えば意味がないかもしれない。
しかし、アルゴリズムの話みたいなコンピュータサイエンスの話が書ける雑誌は、もはやDDJJしかないと思う。
イベントドリブンのヘンな世界からプログラミングに入った方にも、しばしそういうことを忘れていた方にも、本当にコンピュータのプログラミングって面白いなあと思っていただけるようなものにしたいと考えている。
とはいえ、これだけでは仕事に役立たないという意見もあるだろう。そういう話題はVB Magazineに書いていきたいと思っている。



酒井法雄の電脳な日々 index | Previous | Next

int21 ホームページ | PCDN ホームページ | PCDN オンラインマガジン




Copyright (c) 1996 Norio Sakai All Rights Reserved.