プログラミング言語と数学

最近面白いと思って読んだ本に「素数の音楽」がある。この本では素数の分布に関する予想である「リーマン予想」を中心として話が展開していく。リーマン予想は発見されてから150年経ってもなお証明されていない数学界の大テーマだ。この予想を証明するには現在の数学が持つ表現能力では不足で、新しい表現能力が必要であると考える数学者もいるらしい。

Paul Graham は「ハッカーと画家」において「プログラミング言語は、その力において差がある」と言っている。これは数学という言語の持つ力に通じるところがある。

数学もやはり現在までに数々の表現能力を獲得してきたために今の力を持っている。ニュートンライプニッツ微分積分法を発見し、またそのための記述方法を導入した。微分積分は今やあらゆる現象の解析に利用されている。虚数の発見もやはり数学の持つ力を飛躍的に向上させた。虚数が発見されなければ今の工学分野の発展はなかったはず。

プログラミング言語は最終的にはすべて等しくマシン言語に変換されるが、数学の場合はたとえば虚数の概念を虚数を使わずに等しく表現することができるのか僕には分からない。だからプログラミング言語の力と数学の表現能力の力を同列に考えてはいけないのかもしれない。ただ、Paul Graham の言う力の差というものを数学に置き換えて考えてみると、それはただの「差」どころではなく、物事を見る世界が全く異なるということになるわけだ。

最終的に何を使ってプログラミングするかは人それぞれだろうが、少なくとも他の世界を知るために新しいプログラミング言語を勉強することは必要なことだと思う。