インスタンスは抽象クラスの夢を見るか

9月 6th, 2004 § 0 comments § permalink

「オブジェクト指向でなぜつくるのか」というタイトルは、いかにも座りが悪い。ふつうなら「なぜオブジェクト指向でつくるのか」だろう。しかし、一読して合点。これは「オブジェクト指向でなぜつくるのか」でなくてはならない。つまり、「なぜ」は「オブジェクト指向」にかかるのではなく、「つくるのか」にかかるのである。作者は、数ある手段の中から「あえてオブジェクト指向を選択せよ」と言っているのではなく、「オブジェクト指向は"表現する"ための手段ではなく、あくまでも"つくる"ためのツールである」と言っているのである。

オブジェクト指向の説明には、現実世界の比喩がよく用いられる。即ち「クラス=種類・分類」「インスタンス=具体的な存在」というものである(「犬」という種がクラスで、隣のポチとか向かいのタローとかの具体的な存在がインスタンス)。このような「集合論的」な考え方は非常にわかりやすいし、それで世界が説明できるようにも思える。が、しかし、このような考え方はあまりにも世界を単純化しすぎており、かつ、古い。プラトンのイデア論とどう違うのか、私には説明できない。

「オブジェクト指向は現実世界を表現するものではない」。あえて作者が主張せねばならないのは、「オブジェクト指向は世界をそのまま表現する」という認識がまかり通っているからに他ならない。作者はそのような説明をしてしまう既存の初心者向け概説書を批判する。オブジェクト指向はあくまでもソフトウエア開発の「技術」であり、また、ソフトウエアは現実世界をそのまま置き換えるものではない、と。この前提から出発すれば、オブジェクト指向に対する幻想に惑わされることはない、と。ソフトウエア開発にオブジェクト指向を利用する上で、この理解は必要不可欠のものなのであろう。

が、しかし。が、しかし、である。そこをあえて、オブジェクト指向は世界であると考えたいのである。オブジェクト指向は現実世界である、という考え方は、あっさり捨て去るにはあまりにも魅力的に過ぎる。ただし、「クラス=種類・分類」「インスタンス=具体的な存在」という理解においてではない。

先の主張は「インスタンス」を「具体的な存在」と単純化してしまったことに問題がある。「具体的な存在」というデリケートなテーマを簡単に扱おうとしてしまったことにある。犬クラスのインスタンスとして生成された隣のポチは、インスタンスがメモリ上にある限り存在を許されるが、このポチの例えば加齢による衰えを表現する手段が「インスタンス=具体的な存在」にはない。「年齢」という変数を持たせればいいようにも思われるが、衰え方はすべての犬に一様ではない。つまり、状態が変化することを変数により表現することは極めて困難なのである。これを解決するには、インスタンスをもっと動的なものにする必要がある。

そこで、ひとつの仮説を提出してみる。むしろ、クラスこそ、具体的な存在なのではないか。具体的な存在をクラスとして表現することが可能なのではないか。例えば、私という存在は、人間クラスのサブクラスである、店員Kクラスであるとする。つまり私というクラスは生成されたものではなく、また生成する主体でもなく、定義され、待機しているのである。そしてそのクラスをもとに生成されるインスタンスは静的なもので、生成されつつ破棄され続ける。インスタンスは連続しているように見えるが、連続はいわばパラパラ漫画に過ぎないのだ(インスタンスが連続せねばならないのは「変化する」ためではなく、「途切れない」ためである)。われわれはその疑似的な動きを意識だとか自我だとか呼ぶのである。

インスタンスは夢を見ない。インスタンスそれ自体が夢のようなものである。しかしそのインスタンスは、インスタンスを生成することのない、いちばん上位の抽象クラスをもどこかに含んでいるのである。インスタンスを見れば、世界が見える。

このような考えはソフトウエア作成とは無縁のものである。おそらく何の利をももたらさないであろうし、オブジェクト指向をバリバリ使っている人は嫌な顔をするだろう。ただ、もし、この世界が終わって、じゃあ次お前作れ、って言われた時にも、オブジェクト指向は強力なツールになるから、覚えておいて損はない。今のこの世界はオブジェクト指向じゃないけどね。世界はそんなにうまくできてないしね。

ウェブログはじめました

4月 7th, 2004 § 0 comments § permalink

ウェブログはじめました。はじめるにあたっては、ココログやはてなダイアリなどの既存サービスの利用も検討したのですが、やはり制約なしに運営したい、デザインも好きにしたいというわけで、自分でウェブログ作成ツールをインストールすることにしました。

ツールをインストールする、と一口に申しましても、私にはほぼそういったたぐいの知識(サーバ?Perl?)がありません。また、今回利用することにしたMovable Typeは日本語化するパッチが公開されているとはいえ、ウェブ上の日本語情報を収集するのには、やはりちょっとしたコツが必要です。ならば、ということで、参考にしたのがこの書籍です。

「そもそもウェブログとは何か」からはじまって、各ウェブログ作成ツールの特徴、Movable Type のインストール方法、活用方法、応用編、そしてサイトの運営方法まで、ウェブログの作成について網羅的に収められています。主にはMovable Type について書かれおり、Movable Type を利用してウェブログをとお考えのあなたには必携書といえるでしょう。一家に一冊常備したいところです。

また、装幀も素敵です。といいますか、実は私は見た目で選びました。昔から「参考書は装幀で選べ」といわれておりますように、外側にお金がかかっている本は、中身もしっかりしているのが世の常だからです。

Where Am I?

You are currently browsing the コンピュータ category at saba-books.