理想の理論

これは理論に限った話ではない。これをシステムとか、学問、体系などに直しても当てはまる。
理想の理論の要件は一つ。
「それを理解する必要がある者が、可能な限り早く適切にそれを理解できる」ことである。
理解できない理論に価値はない。


新しく理論(プログラムや、なんならメモでもいい)を書いたとき、それは自分にしか理解できないかも知れない。
もし、それが自分にのみ理解されればいいものであるならば、それは十分適切なものである。
しかし、理論なら同業者、プログラムならコンパイラや同僚にも理解されなくてはならない。
あるいは、ごく限定されたモデルにしか通用しないモデルなら、それはより一般化されるべきである。


こうした事情によって、理論は拡張される。理論の扱う範囲は増え、異なる視点から説明が為される。
こうなると、新たな問題が浮上する。
一般化された理論は解りくくなる。個々の問題に対して適用するために、多くの手順が必要になる。
プログラムなら、パッケージ化され、目的の関数にたどり着くまでに多くの関数が呼び出されるようになる。
また、同じことを説明する文書が多くなり、どれが必要かが判りにくくなる。
せっかく初学者向けの説明を書いたのに、初学者は最初にどれを読んだらいいのか判らないということもある。
こうなると、その理論は理想のものではなくなる。


理想の理論は、こうならないように、常に明解さを保たなくてはならない。
とにかく、解り易さが重要である。
最初は自分にしか分からなくてもいい。1人でも分かる人がいるならば、その理論を補完することができる。
しかし、人は自分で書いたものも忘れてしまうものである。メモの内容を忘れてしまえば、それは意味を為さなくなる。
そうならないように、解りやすく説明する。
プログラムの場合、内容を忘れてしまっても、実行できれば意味がある。しかし、それを理解するためには、1から読まなくてはならないので、やはり不適切なものである。


説明を書けば、それを理解できる可能性は増える。だが、説明があまりにも膨大だと、それを読むのに時間がかかる。
読み切れない説明も、やはり意味がない。知りたい情報を、できるだけ速やかに手に入れることができるようになっていなくてはならない。
そのために、冗長な部分を減らす。無駄な部分をなくす。パーツごとに分け、必要なパーツが解るようにする。できるなら、そのパーツ一つ一つが独立した理論、単体で動くプログラムであるべきだ。
理論の各単位も、常に理解しやすく書かれるべきである。通常、定量的な説明より、定性的な説明の方が理解しやすい。
定量的な説明は、理論の妥当性を説明するために用いるべきで、理論の構造を説明するためには用いるべきではない。
これはプログラムでも当てはまる。プログラムは常に定量的に書かれる。これが、プログラムにコメントが必要な理由だ。


ここで、用語に対する考え方が問われる。理論を説明する上で、冗長性を省くために有効な手段は、新しい用語を用いることである。プログラムなら、新しい関数を定義することだ。
この用語は、定量的であるべきか、定性的であるべきか。用語は、説明のために使われるものなのだから、定性的であるべきである。
つまり、性質を示すことが第一である。そのために、日常的な言葉を用いると感覚的に判り易くなる。
一方で、意味が採りにくくなる恐れもある。プログラムでは、特に異なる定義をされると、コンパイラには意味を為さなくなるので問題だ。
そこで、プルグラムはパッケージ化することでそれを回避する。他の理論も同じ考え方をを採り入れると良いだろう。


一つの言葉に複数の意味を持たせるのは良いことである。それにより、人はその背後にある意味を暗黙に知ることができる。
しかし、実際には、正確にどの意味として使っているか知る必要がある。
このため、いちいち用語を定義する必要があるが、その用語が含まれているパッケージ(学派、業界など)と、そこでの定義が判っていれば、いちいち定義する手間が省ける。
こうした、用語の意味を採りやすくする工夫も、理想の理論には大切なことである。


理想の理論は、精緻に組み上げられた理論ではない。使える理論だ。
そのために正確さが必要であれば、もちろん正確である必要はある。
しかし、それと同時に、解り易さを失ってはならないことを忘れてはいけない。

まとめ

理想の理論の手法:何を言いたいのか判らせる→妥当であることを解らせる