Loading...

奇妙な言語

Original

2021年8月

プログラミング言語はすべて基本的に同等だと経験上言う人がいますが、それは彼らが行ってきたプログラミングの種類についての発言であって、言語そのものについてではありません。

プログラミングの99.5%は、ライブラリ関数を呼び出して繋ぎ合わせることで成り立っています。人気のある言語はこれらの作業に同等に優れています。そのため、自身の全キャリアを人気言語の共通部分で過ごすことも可能です。

しかし、残りの0.5%のプログラミングこそが、本当に興味深いものなのです。これがどのようなものかを学びたいのであれば、奇妙な言語の奇妙さに注目するのが良いでしょう。

優れた奇妙な言語が奇妙なのは偶然ではありません。これらの言語の奇妙さは、ライブラリ関数を単に繋ぎ合わせるだけではない、別の形のプログラミング技術の存在を示唆しています。

具体例としてLispマクロがあげられます。Lispマクロは、Lispプログラマーの間でさえ奇妙なものと見なされています。なぜなら、それらはポピュラーな言語の共通部分にはないだけでなく、Lispのようなダイアレクトにしない限り、適切に実装するのが難しいからです。そしてマクロは、単なる接着プログラミングを超えた技術の証拠なのです。例えば、その種類の問題用の言語を先に書き、それを使ってアプリケーションを記述するといった手法です。マクロにはこれ以外にも、まだ十分に探索されていない、プログラムを操作する様々な技術が秘められています。

プログラミングの可能性を広げたいのであれば、奇妙な言語を学ぶのが一つの方法です。ほとんどのプログラマーから奇妙だと見なされつつ、ユーザーの質が高い言語を選び、ポピュラーな言語の共通部分との違いに焦点を当てましょう。この言語ならではの表現はほかの言語ではどのように表現するのが最も不便でしょうか? その新しい表現方法を学ぶ過程で、今まで考えられなかったことを考えられるようになるかもしれません。

Trevor Blackwell、Patrick Collison、Daniel Gackle、Amjad Masad、Robert Morrisの各氏に、この原稿のドラフトを読んでいただきありがとうございます。