物の「カタチ」ということに関する思い

 我々のような”物つくり”としてプログラミングを生業とするものにとって、ソフトウエアにおける「カタチ」は重要ですが、多くのプログラマには明確に意識はされていないようです。わたしがどれだけ正しくこれを語れるのかわかりませんが、考え続けていきたいと思っています。
 「カタチ」を別の言葉にすると「構造」といってもいいのではないかと考えておりますが、ソフトウエアの構造は実像として目に見える部分はごく限られていて、つまりソフトウエアの「カタチ」は概念的にイメージとして認識されるものなのです。
 30年程前、赤や黒のヘルメットをかぶったひとたちが大学内を行き来していたころ、わたしは「構造」に関するブルーバックスの本を読んで(題名忘れてしまいました)、そこから「構造」に興味を持ちはじめました。
 「構造」は「関係」そのもので、「構造物」は「関係」を「具体化したもの」だと考えています。
 たとえば、通常の「構造物」は、地球上に存在していますので重力との関係から開放されません。空気中にいれば空気、水の中にいれば水、との関係からも開放されません。また、机の高さ。ドアの大きさ。これらは、人間の大きさが基準になって決められます。つまり、物の「カタチ」は、物のまわりの環境や別の物との物理的な関係、また、利用する人との物理的な関係で「カタチ」が決まっていきます。それは、”解かりやすい構造”です。しかし、ミニチュア家具の机の高さは単純に人間との物理的な関係で決まるわけではありませんし、お城の門のように必要以上に大きな”扉”も世の中には存在していて、それらがその「カタチ」になったのは、単純な物理的関係だけではない要素がああることは間違いないでしょう。
 また、新聞紙。新聞紙の本来の「カタチ」は情報を伝えるメディアですが、新聞紙が八百屋さんで使われると、野菜を包む包装紙となります。包装紙にむいているという理由で新聞社を選んでいる八百屋さんがいたとかいないとか。。。つまり、同じ”物”でも、使う側の都合で、そのものの「カタチ」が異なるものに変貌します。
 ということは、物の「カタチ」には、物理的な関係だけではなく、使い手(見る人)の脳の中にあるなにかであると考えていいのではないでしょうか。つまり、「カタチ」はもともと概念的なものであるということなのですが、では、ソフトウエアの「カタチ」が概念的であるということと同じなのでしょうか?
 プログラマがプログラムを作るときに意識するソフトウエアの「カタチ」は、作る「カタチ」です。一般の物であれば視覚的に見える形を考える(設計する・デザインする)工程にあたります。しかし、一般の物と異なるのは、「カタチ」を形として可視化することが難しいという点です。可視化が難しいということは、自らがデザインを間違うことにもつながり、また、顧客とのデザインに関する議論も困難であるということになります。
 しかしながら、ソフトウエアの開発が概念的な作業であるがゆえに、また、いろいろな制約から解放されているがゆえに、作るものの本質を見極める、または、本質を発見するという楽しみもあります。