奇妙な言語
Original2021年8月
自分の経験上、すべてのプログラミング言語は基本的に同等であると言う人は、言語についてではなく、自分が行ってきたプログラミングの種類について述べていることになります。
プログラミングの 99.5% は、ライブラリ関数の呼び出しをつなぎ合わせることで構成されています。すべての一般的な言語は、この点で同等に優れています。そのため、一般的なプログラミング言語の交差点でキャリア全体を過ごすことも容易です。
しかし、プログラミングの残りの 0.5% は、不釣り合いなほど興味深いものです。それが何で構成されているかを知りたい場合は、奇妙な言語の奇妙さが手がかりになります。
奇妙な言語は偶然奇妙なのではありません。少なくとも、優れた言語はそうではありません。優れた言語の奇妙さは、通常、単にライブラリ呼び出しをまとめただけのものではない、何らかのプログラミング形式の存在を暗示しています。
具体的な例: Lisp マクロ。Lisp マクロは、多くの Lisp プログラマーにとっても奇妙に思えます。Lisp マクロは、一般的な言語の共通点ではないだけでなく、その性質上、言語を Lisp の方言に変えずに適切に実装することは困難です。また、マクロは、グルー プログラミングを超えるテクニックの証拠であることは間違いありません。たとえば、まずその種類の問題に対応する言語を記述し、次にその言語で特定のアプリケーションを記述することで問題を解決します。マクロで実行できるのはこれだけではありません。これは、現在でも完全には探求されていないプログラム操作テクニックの領域の一部にすぎません。
プログラミングの概念を広げたいなら、1 つの方法は、変わった言語を学ぶことです。ほとんどのプログラマーが変わった言語だと思っているが、平均的なユーザーは賢い言語を選び、その言語と一般的な言語の共通部分との違いに注目してください。他の言語では言いにくいことを、この言語で言うとしたらどうでしょう。これまで言えなかったことを言う方法を学ぶ過程で、これまで考えられなかったことを考える方法を学ぶことになるでしょう。
この原稿を読んでくださった Trevor Blackwell、Patrick Collison、Daniel Gackle、Amjad Masad、Robert Morris に感謝します。