第11回 Let's Talk Lisp:まつもとゆきひろのハッカーズライフ(2/2 ページ)
今回は、Lispについて簡単に紹介してみようと思います。Lispの先進性は、Lispの強さの副作用とでも呼ぶべきものです。Rubyも、文法こそ違うものの、その本質としてLisp文化を継承しているといえるかもしれません。
Lispの強さ
最先端の機能を提供してきたLispですが、その強さは特定の機能に見いだせるわけではありません。むしろ、いろいろな機能を実験してみるのに非常に便利なため、その中でよいものが生き残ったと考えるべきでしょう。Lispの先進性は、Lispの強さの副作用とでも呼ぶべきものなのです。
その強さを表現するキーワードは「動的」です。インタープリタそのものであるevalを持っているLispは非常に動的で、単なるデータだけでなくプログラム自体を取り扱うことができます。Javaなどにもリフレクションという名前でプログラム自体を扱う機能が提供されていますが、データとプログラムが同一のフォーマットで表現されるLispの動的性にはかないません。プログラム自体を扱うプログラミング、メタプログラミングによって、Lispの上にいわば別の新しい言語を作り出すことが簡単にできます。新しく言語処理系を書かなくてもドメイン特化言語*を作り出すこともできますし、言語自体に手を加えなくてもオブジェクト指向機能のようなものも実現できます。
Lispの不幸
そんなに優れた言語なのに広まらなかったLispは、不幸としか言いようがありません。もちろん、ただ単に運が悪かっただけではなく、いろいろと理由はあります。
その1つはさまざまな誤解です。Lispはほかのプログラミング言語に比べて「高級」なので、実装が大変難しく、なかなか性能の良い処理系が登場しませんでした。性能第一のFORTRANなどの言語と比較すると、その点で長らく不利でした。その後、実装技術の向上によってほかの言語とそん色ない性能が出せるようになっても誤解は解けず、いつまでも「Lispは遅い、使えない」と思われてきたのです。また、学者しか使わない言語というイメージが形成されたのもつらいところです。
もう1つの理由はあの括弧でしょう。Lispのプログラムには大量の括弧が登場します。慣れれば優先度などが明確に表現されるよい文法なのですが、少なくとも初心者は引いてしまいそうです。また、プログラミングスタイルが「普通」の言語とは相当異なることも問題です。この点では関数型言語も似たような障壁に当たっているようです。
MatzLisp
JavaはLispで培われてきた技術を広く知らしめるのに貢献しました。いままで知る人ぞ知る技術であったものが、Javaのおかげで多くの人が知る「常識」に格上げされたといってもよいでしょう。しかしJavaには、Lispの強さのごく一部しか取り込まれていません。「時代は動的言語」といわれていますが、それはJavaが提供しなかったLispの強さを取り込んでいく、世間がますますLispの強さに気がついていく過程なのかもしれません。わたしのデザインしたRubyがその一翼を担っているのは誇らしい限りです。
以前、某イベントの二次会で「実はRubyって『MatzLisp*』というLispの方言だったんだよ!」と語られたようです。何とも傑作なネタですが、Lispの強さを痛感したわたしが「自分が満足するために」作り出したRubyは、文法こそ違うものの、その本質としてLisp文化を継承しているのかもしれません。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページで出てきた専門用語
ドメイン特化言語
目的別に特別設計された言語(DSL:Domain Specific Language)。
MatzLisp
MITで開発された有名なLispにMacLispというものがあり、それとかけているという点でもこのネタは秀逸である。
関連記事
- まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇
- まつもとゆきひろのハッカーズライフ:第2回 キーボードへのこだわり
- まつもとゆきひろのハッカーズライフ:第3回 ハッカーと仕事
- まつもとゆきひろのハッカーズライフ:第4回 Emacs対vi
- まつもとゆきひろのハッカーズライフ:第5回 ハッカー環境問題
- まつもとゆきひろのハッカーズライフ:第6回 言語の重要性
- まつもとゆきひろのハッカーズライフ:第7回 言語の重要性その2
- まつもとゆきひろのハッカーズライフ:第8回 ハッカーとオープンソース
- まつもとゆきひろのハッカーズライフ:第9回 測定狂時代
- まつもとゆきひろのハッカーズライフ:第10回 ソースを読もう
- まつもとゆきひろ――第1回:オープンソースという「お仕事」
オープンソースソフトウェアの開発にかかわっている人のインタビューをシリーズでお届けする「Open Source People」。記念すべき第1回はMatzのニックネームでも知られるまつもとゆきひろ氏の「人となり」に迫る。 - まつもとゆきひろ――第2回:Rubyを開発するということ
周囲がまつもと氏のまれたぐいまれなプログラミング言語アーキテクトとしての才能に気づき、まつもとがそれに専念できるような体制が自然に形作られつつある――Rubyはいま、そういう状況にあるように見える。今回は、Rubyの開発におけるまつもと氏の考えに迫る。 - まつもとゆきひろ――第3回:僕の存在価値はそこにある
過去2回にわたってお届けしてきたまつもとゆきひろ氏へのインタビューは今回が最終回となる。「誰かがRubyを実装し直したとしたら、いまのRubyよりもずっとエレガントで速いものができるはず」と語るまつもと氏は自身の存在価値をどのように見ているのかに迫る。
Copyright © ITmedia, Inc. All Rights Reserved.