日本で作れるソフト
ソフトを作る仕事をしていると、本場が米国であることにイヤとなるほど思い知らされます。OSしかり、CPUしかり、設計方法しかり。あれこれ考えてみたりしたのですが、小林道夫『科学哲学』(産業図書)という教科書を勉強することにしました。動機は不純なのですが、米国産のアイデアを先に知っていればお客さんに通用すると仕事をはじめたころは思っていたのですが、どうもそうでもない。ある会社である意見や方向性をもって人に説得力を持つ人は、どうも考え方、発想、勉強の仕方、なにか、どうも私とは違うのです。なんだかこのままではクヤシイし、説得される側でいるのもいつもいつもだと癪ですよね。
まぁやれることからやりましょう。
『科学哲学』第1章の要旨(筆者の理解レベルで纏めていることに注意)
デカルト登場まで
- 17世紀に古代ギリシアのアリストテレスの自然学からの大きな転換があった。それは革命的であった。
- アリストテレスの思考法の要点
- アリストテレスは世界を目的があり形相がある、ある秩序に沿うものと考えた。
- ガリレオはアリストテレスの時代のアルキメデスの科学上の著作に親しんでいた。地球が回転しているのが本当なら移動中の船のマストから物を落としたらまっすぐに落ちないじゃないかという意見に対し、地上の物体は同一の水平方向の一様運動を共有している。よってお互いに静止した状態にあると明解な回答を与えた。
- ガリレオは落下の距離が時間の2乗に比例すること実験で証明した。ただし、円運動はそれ以上分解できない慣性運動であるという伝統的な立場に立っていた。
デカルト登場後
- デカルトは青年期に数学を物理に適用する「物理数学」の構想を持った。ガリレオのように実験・観察に進まず、まずは数学に向かった。
- 代数で扱っていた数(1,2,3,..)を、連続量である直線である座標軸に割り当て幾何の対象である図形が代数的に表現できるようになった。これが幾何と代数を統合した解析幾何である。
- コギト・エルゴ・スム 経験論的認識論を排す。人間の思考は感覚知覚とは独立に働き、その方から事物の普遍的本質を理解し得るのだ。
- 円運動とは直線方向の慣性運動と、法線方向の加速度による運動であると分解して見せた。
- デカルトの思考法
- 人間知性に与えられた数学概念に基づき一般的な法則を立てる
- 任意に仮説を介入させて、数学的推論に基づき一つの理論的体系を作る
- 理論体系が自然の体系と一致することが経験上知られているならば、仮説や原理は真であるとみなしてよい。とくにこれまで知られていなかった未知の事項までもそれによってすべて説明されるならば、そうみなしてよい。
- 眼にみえないミクロな物体については上記の考え方に従って理論をたて、どのような結果となるかを推論し、その結果がマクロな感覚可能なものに認められれば理論の真理性を検証できる。
- ミクロな物体の構造を探求するには、人工の機械の内部の状態を外から推察するようにしておこなうのが有効である。
構造化プログラミングにより、インプットとアウトプットをブラックボックス化する関数と、条件分岐、ループ処理を我々は手にしました。オブジェクト指向登場後、オブジェクトとクラスという概念が登場しました。オブジェクトとはアリストテレスが言う実在するもの。主語と述語で言えば主語になり得るものです。クラスとは「類」です。分類するためのものです。現在の開発現場で使用されているオブジェクト指向言語は、述語的な性質、白い、走れるもの(Runnnable)、資源を開放する必要があるもの(Disposable)を表現することができるインタフェースという概念も持っています。
現在の開発現場ではアリストテレスの自然学に似た発想で開発を行うことができています。この次にはデカルトの発想を取り入れることができるかが勝負です。開発者が当たり前に使えて、実際に役にたつ、そんな設計手法にたどりつくことができるのでしょうか。これからのお楽しみです。
追記)
誤記訂正 2009/11/15
誤記訂正 2009/11/17