ハードとソフト、そしてOOへ。

正月なので遊び感覚で文章を書いてみる。
ちょっと前の日記でこんなことを書いた。

データ構造 + アルゴリズム = プログラム

以前はプログラムといったらアルゴリズムという風潮が強いように(もしかしたらぼくの妄想かもしれないけれど)感じられたが、最近ではデータ構造を重視する流れに傾いている。
それは世間的にハードウェアが進化してきた結果として、ソフトウェアの面であれこれとアルゴリズムを工夫する必要がなくなったからだ、という趣旨のもの(いわゆる駄文)だった。

正月あけたくらいの夜中にこんなことを思いついた。データ構造にアルゴリズムがくっついてプログラムができるという過程は、ソフトウェアとハードウェアの関係に似たものがないだろうか。式にしてみる。

ハードウェア + ソフトウェア = もの

「もの」っていうのはとっても抽象的なんだけど、広い意味でのハードウェアとソフトウェアとして捉えてみたい。最初に書いた2つの式と並べてみる。

データ構造 + アルゴリズム = プログラム
ハードウェア + ソフトウェア = もの

並列にくらべることにどれだけ意味があるのかわからないけれど、1つの考え方としては面白いかもしれない。もうちょっと推し進めてみる。「もの」を「オブジェクト」として捉えてみたらどうだろうか。もちろん「オブジェクト」はオブジェクト指向で言われる「オブジェクト」である。
OO(オブジェクト指向)の世界では人によって言葉の定義がまったくのごとくバラバラで、それこそ各人のオブジェクト志向ではなくオブジェクト嗜好を語っているに過ぎないのではないかと思われるくらいなんだけど、まあ「オブジェクト」の定義も例にもれることなくよくわからないことが多い。ここのところをしっかり固めないと、IT産業全体が成熟していかないような気がしている(もちろんぼくが勝手にそう思ってるだけなんだけど)。ということで自分なりに少しでも考えて色々と試行錯誤してみたら良いじゃないのっていう気持ちで見てみる。
「もの」と「オブジェクト」を同義で考察してみるとこんなふうになる。

  • 「オブジェクト」は「ハードウェア」と「ソフトウェア」から成り立つ。即ち、物理的な概念と論理的な概念を持つ。
  • 「オブジェクト」は「データ構造」と「アルゴリズム」から成り立つ。これは一般的に言われる「オブジェクトはデータと手続きを一体化したもの」と同じような感覚かな。

「ハードウェア」と「ソフトウェア」から成り立つという視点はちょっと面白いかもしれない。いずれもっと深く考えてみよう。
うーむ。しかしこんなことを考える前にもっと偉い人の書籍を読まないといけないのだけれど。なにをやってるんだ。まあいいや。思考するのは自由だし(ん、志向だっけ?嗜好になるのかな?そのうちオブジェクト究極vsオブジェクト指向なんてことが起こらないだろうか)。