ソフトウェアの存在論

現代形而上学で存在論について学んだので、それを応用してソフトウェアの存在について考えてみる。

ハードウェアとの存在依存関係について

まず存在依存の定義。

であった。さらに依存の様態によって、歴史的依存と恒常的依存、また依存するβが個物か類かによって、個別的依存または類的依存に分けられるのだった。

さて、ソフトウェアが存在依存するものとはなんだろうか。それはまずハードウェアではないだろうか。この場合、特定のハードウェアではなくあるチューリング完全なハードウェアがあれば良いから、この存在依存は類的な依存関係であるといえる。

ただ、チューリング完全なハードウェアは厳密に言えば存在しないから、本当は上のような意味での抽象的なソフトウェアは存在しないと言えるかもしれない。 むしろ、実際のソフトウェアはPC98のようにある程度具体的なハードウェアの上で動作するよう作られる。とすると、ソフトウェアが存在依存しているのは、ある程度具体的なハードウェアの類ということになると思う。とすると、互換性の高いソフトウェアとは、より一般的なハードウェアの類に存在依存しているソフトウェアのことになるのかもしれない。

制作意図との関係

ところで、ソフトウェアは人工物なのだろうか。「現代形而上学」では、人工物は「ある目的に従って意図的に作られたもの」と定義されている。たしかに多くのソフトウェアがこの定義に当てはまるが、遺伝的アルゴリズムなどもソフトウェアと思われているので、ソフトウェアはかならずしも人工物とは限らないのではないだろうか。実際、制作意図を満たさない「バグ」のあるソフトウェアもソフトウェアとして「正しい」ソフトウェアと同列に扱われているようにみえる。

タイプとトークン

さらに、ソフトウェアの特徴として、タイプ(類)とトークン(個物)の区別がほとんど意味をなさない、ということがあると思う。「現代形而上学」にあげてある例だと、車種としてのプリウスはタイプで、個々の車としてのプリウスがそのトークンになる。しかし、ソフトウェアでは、「個々」という概念が曖昧だ。確かに媒体に入っていれば、媒体ごとに個々のソフトウェアと言えるかもしれないが、ネットワークで共有されていたりする場合も多い。

まあ、似たようなことを考えている人はいるんでしょうねえ。