プログラミング言語とラテン語
僕が始めてプログラムを組んだのは、大学に入って半年くらいのころだった。言語はfortranで、演習12回の授業のうち最後の4回がプログラミングに当てられた。
それから3年、半期プログラミングの授業や実験でfortranと付き合い続けているわけだが、身内の情報系の職業の人と話すたびに「fortranなんてやってるの?」と言われた。
確かにfortranはコンピュータ黎明期からある言語で、最近のバージョンでこそ構造体などが組めるが、GUIは扱えないし、言語としてはあまり便利なものではない。実際、数値計算以外で使う局面はほぼない。客観的に見れば、もっと他に有用な言語があるだろう、となるわけだ。
しかし、4回生になってシュミレーション系の研究室に配属されて、そこではfortranでコードが書かれていた。スパコンを扱うときもコードはfortranで書くことが過半数はあるようで、どうやら科学技術計算のスタンダードはfortran、といっても間違いではなさそうだ。
これを聴いて、僕はこのプログラミング言語の状況が自然言語のたどってきた歴史ときわめて似ていることに驚いた。
かつて、ヨーロッパでは、ラテン語が共通言語であった。それが各地で方言として変化していき、最終的には英語やフランス語のように相互理解はできないものに分化していった。
しかし、そのように言語が分化していく中でも、学術分野においてはラテン語が長く使われていた。学術言語にしゃれたレトリックは必要なく、どこの学者でも理解できる共通性が重要視されたのである。そのため長く学者は母語のほかにラテン語を必要とした。
プログラミング言語に戻ろう。現在のプログラミング言語がfortranから分化したわけではないが、C言語やBASICといった黎明期に用いられた言語に、オブジェクト指向などのさまざまな機能が追加され、現在ではC言語から分化した言語だけでもC++、C#、Objective-C、D言語、javaと挙げられるほど、プログラミング言語は多様化している。しかし、余計な機能を必要としない、計算ができればよい科学技術計算においては、いまだにfortranという基礎的な言語が活躍しているのである。
自然言語からのアナロジーでプログラミングコードを書くやり方を「プログラミング言語」というわけだが、こういうところにも類似性が出てくることはおもしろい。