夢みたいな夢じゃないような

 以前もちょろっと書いたが変数は型(タイプ)なんてないほうがいいというか、型を意識して物を考えさせられるのは苦痛だ。人間は物に対して型なんて考えない。それが自然だ、と。
 それは今でも基本的に変わらないのだが。
 が、人間の思考というのは、OOP的なんだろうか?
 ところで、型(type)というのは、実は、クラス(Class)であり、クラスというのは、イデアだ。プラト二ズムというか、ようするにこれは形而上学的な一つの世界観の表明であり、プログラミングというのはある種の世界観の表明である……一面で。
 人間の思考はどこまでが計算なのだろうか。言語は計算だろうか。計算は自然数に起源を持つのか? そのあたりは、生得だとして、生得能力は実際には何を意味しているのか? というか、これもまたただのイデア論であり循環論ではなかったか。
 ちなみに⇒Haskell - Wikipedia

let { fac 0 = 1; fac n | n > 0 = n * fac (n-1) }
 
 階乗を単一の条件による終端を伴う再帰的関数として表現している。これは数学の教科書でみられる階乗の表現に似ている。haskellコードの大半は、その簡潔さと構文において基本的な数学的記法と似通っている。
 階乗関数に示されている1行目は任意であり、この関数の型を示す。これは「関数fac(fac)はIntegerからIntegerへ(Integer -> Integer)の型を持つ(::)」と読める。これは整数を引数としてとり、別の整数を返す。もしプログラマが型注釈を与えない場合、この定義の型は自動的に推測される。

 ポイントはこうした思考のなかで、「この定義の型は自動的に推測される」という点だ。
 ま、そういうあたり。
 で、夢みたいな夢じゃないようなで考えていたというか思っていたのだが。
 じゃあ、Javaみたいな言語から変数の型を抜くということができるか?
 っていうと、クラス自体が変数の型と同じような意味合いを持っているので、つまり、それはむちゃだな。クラスベースの計算体系というは必然的に型を要求するし、つまり、しかたないのだ。
 つうわけで、OOPというとき、この型とクラスの問題と、メッセージというのは、どうもまるで違うわけか。
 ⇒オブジェクト指向 - Wikipedia

 オブジェクト指向分析や設計に基づいてシステムを実際に開発する際には、オブジェクト指向言語を用いる必要は必ずしもない。ただし、オブジェクト指向によるシステム分析結果を実装するには、プログラム構造とのセマンティクスギャップが少ないオブジェクト指向言語を用いるのが普通である。
 なおオブジェクトという用語は時に「もの」という直訳語で認識される場合があるが、英語objectには「目的語」、または「目的となる対象物」という意味がある。従ってオブジェクト指向は本来「述語(機能)よりもその対象を中心に据える」というニュアンスをもつ用語である。

 つまり、そのセマンティクスなんだろうな。
 というわけで、プラトンじゃないアリストテレスはとふと夢のなかで考え続ける。
 ⇒Aristotle - Wikipedia, the free encyclopedia

Aristotle defines his philosophy in terms of essence, saying that philosophy is "the science of the universal essence of that which is actual". Plato had defined it as the "science of the idea", meaning by idea what we should call the unconditional basis of phenomena. Both pupil and master regard philosophy as concerned with the universal; Aristotle, however, finds the universal in particular things, and called it the essence of things, while Plato finds that the universal exists apart from particular things, and is related to them as their prototype or exemplar.

 ここで、prototype or exemplar が出てくるのはむしろ当たり前のことなんだろう。
 どうも計算機科学の基本にこれらのジャーゴンスキーマがしこたま入っているようだが、誰か整理した人はいないのだろうか。

 日本の哲学では、プラトンイデアに対して、アリストテレスのエイドス、とかいうのだが、エイドスは、eidosであり、つまり、これはイデアでしょ。そして、これに対して、ヒュレーがある。
 で、ヒュレーというのは、訳語としては、質料。エイドスが形相。
 ああ、そうか。
 ヒュレーの前に、エイドスというのは、アリストテレスは、むしろ、生物の種の概念で捉えていた。ってことは、これこそ、べたに、クラスってやつか。プラトニズムというよりもだ。
 っていうか、インスタンス(instance)というのは語感としては生物学でいう個体だろ。
 ヒュレーに戻ると。
 ヒュレーというのは、「生成作用において素材となり、エイドスの規定を受けて現実的なものとなる」というわけで、むしろこっちがベタにクラスか。
 ヒュレー(hyle)はラテン語では、materia、つまり、materialだ。材料だな。その意味で、クラス=アイデアがあれ、それがマテリアルとしてインスタンスとして存在する。これは、OOPなんかの考えとは違う。OOPには属性とかあるが、マテリアルというのはない。ポリモーフィズムとかでもマテリアルの問題ではない。
 ところで、ヒュレーは、フッサールでは、「意識において実的な意味構成の質料となる契機」としていたわけで、そのあたり、フッサールアリストテレスというのはどういう関係だったのだろうか?
 ま、ようするに、スコラをきちんと勉強しないとアカンのかも。
 つうか、もっとも基礎的なところで、OOPを私が理解していないか、OOPに混乱があるか。