Lispとは?66年の歴史を持つプログラミング言語
Lisp(LISt Processing)は、1958年にMITのJohn McCarthyによって設計された、現存する世界で2番目に古いプログラミング言語です。FORTRANの1年後に誕生しましたが、FORTRANが数値計算のために作られたのに対して、Lispは人工知能研究のために生まれました。
66年が経った今でも、Lispの方言(Clojure、Common Lisp、Scheme、Racket、Emacs Lispなど)は現役で使われています。なぜこれほど長く生き延びることができたのか。その理由を探っていくと、プログラミング言語の設計について面白い示唆が見えてきます。
Lispが生き残った理由①:コードとデータの等価性
Lispの最も革命的な特徴は「ホモイコニシティ(homoiconicity)」です。簡単に言えば、プログラムのコード自体がLispのデータ構造(リスト)として表現されるということですね。
たとえば (+ 1 2) は「1と2を足す」というプログラムであると同時に、「+と1と2からなるリスト」というデータでもあります。この性質のおかげで、プログラムが自分自身を書き換えたり、新しいコードを動的に生成したりすることが自然にできてしまいます。
これが「マクロ」という強力な機能の基盤になっています。Lispのマクロは、C言語のプリプロセッサマクロとは別物で、言語自体を拡張できる本物のメタプログラミングツールです。新しい制御構文や言語機能をユーザーが定義できるので、事実上、プロジェクトごとにカスタマイズされた専用言語を作れてしまうわけです。
Lispが生き残った理由②:先進的すぎた機能の数々
Lispが1950年代〜1960年代に導入した機能の多くは、他の言語が「発明」するまで何十年もかかりました。ガベージコレクション、再帰、動的型付け、高階関数、クロージャ、REPL(対話型実行環境)、条件式。これらは全てLispが最初か、最も早い段階で実装したものです。
Pythonのリスト内包表記やJavaScriptのラムダ式、Rustのパターンマッチングなど、現代のプログラミング言語が「新機能」として導入するものの多くが、実はLispでは何十年も前から使えていたと知ると少し驚くかもしれません。
Alan Kayが「Lispはプログラミングのマクスウェル方程式だ」と評したのは、Lispが個別の機能ではなく、プログラミングの根本原理を体現しているからでしょう。
Lispの現代的な方言たち
「Lisp」と一口に言っても、現在使われている方言はそれぞれ特徴が異なります。
ClojureはJVM上で動作するモダンLispです。不変データ構造と関数型プログラミングを重視しており、Javaのエコシステムをフル活用できます。NuBankやWalmartなど大規模企業での採用実績もありますね。ClojureScriptを使えばフロントエンド開発も可能です。
Common Lispは1984年に標準化された「大きなLisp」で、マルチパラダイム(オブジェクト指向含む)に対応しています。Grammarly社の文法チェックエンジンのバックエンドで使われていたことでも知られています。
RacketはSchemeの流れを汲む言語で、プログラミング言語の教育と研究に強みがあります。「言語指向プログラミング」をコンセプトにしており、ドメイン固有言語(DSL)を作るための言語、という面白い位置づけです。
Emacs LispはテキストエディタEmacsの拡張言語です。Emacsユーザーにとっては日常的に触れるLisp方言で、エディタのカスタマイズからVimユーザーとの論争まで、独自の文化を形成しています。
AI時代にLispが再注目される理由
Lispは元々AI研究のために生まれた言語です。1950年代から1980年代の第一次・第二次AIブームでは、LispがAI研究の主要言語でした。しかし、「AIの冬」と呼ばれる停滞期を経て、AI分野の主役はPythonに取って代わられました。
それでも、現在のAIエージェントの設計には、Lispの思想が色濃く反映されています。コードを動的に生成・評価する能力、シンボリックな推論、メタプログラミング。これらはLispが数十年前から得意としていた領域です。
また、MCPのようなAIツール連携プロトコルの設計思想にも、Lispのリスト処理やS式のような構造化データのアイデアが影響を与えているとも言えるかもしれません。
Lispを学ぶ価値はあるのか
正直なところ、2026年にLispを「仕事で使う言語」として選ぶのは勇気がいるかもしれません。求人数ではPythonやJavaScriptに到底かないませんし、ライブラリの充実度でも差があります。
ただ、プログラミングの理解を深めるという意味では、Lispを学ぶ価値は計り知れないと感じています。Lispを学ぶと、他の言語を見る目が変わります。「なぜこの言語はこういう設計になっているのか」「この機能のルーツはどこにあるのか」が見えてくるからです。
MITの名著「Structure and Interpretation of Computer Programs(SICP)」は今でもScheme(Lispの方言)を使って計算科学の基礎を教えており、オンラインで無料で読めます。週末に少し触ってみると、プログラミングに対する視野が広がるかもしれません。
まとめ:「古い」ことは弱みではない
Lispが66年間生き延びたのは、流行を追いかけたからではなく、プログラミングの本質的な問題に取り組んだからでしょう。コードとデータの等価性、マクロによる言語拡張、インタラクティブな開発スタイル。これらの設計判断は、半世紀以上前のものとは思えないほどモダンです。
新しい言語やフレームワークが次々と登場する今だからこそ、時の試練に耐えた設計原理から学ぶことは多いのではないでしょうか。
参考リンク:
