言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

表現の道具としてのコンピュータ

the computer as a tool of expression

SSS2003 にて、永野先生 http://kayoo.org/nagano/ がコンピュータ教育の本質がプログラミングではなく、表現にあるとおっしゃった事には非常に共感を覚えた。特に論理的な事を理解する場合、我々はついその論理の本質に飛びつき、その表現については軽視しがちだ。しかし、物事を伝達するだけでなく、理解する時にでさえ表現の役割は重要だ。例えばローマ数字とアラビア数字(位取り法)を比較してみよう、どちらも同じ抽象概念を扱えるにも関わらず、扱いやすさの違いは明らかだ。

まず、表現を表記法、すなわちある考え方を他者や自分に正確に伝える手法と見て、表記法の発展について考える。表記法の進歩によって、ある理論の理解が深まる一方で、表記法の進歩は理論そのものの進歩よりも遅い事も事実だ。これに表記法と言う物が社会性を持つと言う側面もあって、いくつもの理由が挙げられると思う。

まず、表記法の難しさ自体に権威がある場合、これはまだ識字率の低かった時代にはどこの社会でも特に顕著であったし、現在でも法曹界を筆頭とし、どこの業界でも多かれ少なかれ見られる現象である。ここでは、ある表記法を理解出来ると言う事が大きな意味を持つ。表記法の理解はコミュニティーの内と外を隔て、コミュニティーの安定的な存続に役立つ。このような場合表記法の進歩は遅い。

表記法の難しさ自体がたいして問題とされない分野もある。例えば数式に関して言えば、個人的にはあれは決して正確でも論理的でも分かりやすくも無いと思うのだが、数学的な素養を持つ人々は多くの場合あのような表記法を苦にしないものなので、特に問題は発生していない。

また、また、優れた理論を構築する科学者が、同時に良い表記法を発明するとは限らないという点も挙げられる。ニュートン微分数学の領域でも偉大な業績を残したが、現在彼の表記法は使われていない。偉大な科学者は自分の頭の中にイメージを持つ事が出来るので、優れた表記法を必要としないのかもしれない。

このような状況が、コンピュータの登場によって変わる可能性がある。産業界においてコンピュータの役割は人々の業務を助ける事であるから、まずプログラマは業務の内容を把握し、クライアントや共同開発者との打ち合わせを行わなくてはならない。クライアントはコンピュータのプロでは無いから、コンピュータの動作と業務との連携を確認するため、様々に工夫された表現が使われる。また、作業の正しさはシステムの動作という形で検証される。

このような中では、実用的な表記法に対する大きな需要と、システムの動作という形での評価基準が確立される。今後我々にとって優れた表記法を使いこなせる人材がより必要になってくるであろう事が予想される。ここで、より抽象的なレベルで、現在我々が必要としている表現を考えてみよう。私は、それは集合論に関した物ではないかと考えている。

集合とは、ある物の集まりの事であるが、システム設計の世界ではドメインと言う単語がよく使われる。ある事柄が、どこには含まれどこには含まれないと言うルールが、システム設計では大きな意味を持つ。これは暗黙値と経験を重視した社会では表に現れない物だが、システム化と言う名の下に業務の言説化、すなわち、経験を寄せ集めて言い表す事の出来る共通のルールを作り出す事を重視する社会では非常に重要である。

おおまかにみて、歴史のある表記法ほど優れている。先ほどあげた10進法の例や、図形による幾何学の証明等は非常に直感的で分かりやすいと言える。しかし、近年になって登場した集合に関する表現は、特に集合自体を要素として扱う事の出来る再帰的な性質を持つ事から、未だにこなれているとは言いがたい。これはまた、集合に依存する確率や統計と言った分野にもあてはまる事である。集合や確率理論の結果が直感に反する事がよくあると言うのはこれらの表記法の分かりづらさによって起因する物と私は考えている。

再帰を含む集合のアイデアを紙に簡単に書く事が出来るように表記法を改善する事は、おそらく他の表記法と同様長い年月と経験を必要とするだろう。しかし我々はコンピュータによるシミュレートや検証を通して示してみる事が出来る。これらの経験を元に新たな表記法を開発したり、表記法に捕われない新しい意思伝達の手段 ー 表現を生む事が我々に与えられた課題である。