![]() | 会員なら、この商品は10%Amazonポイント還元 (ポイントが表示されている場合は、表示ポイント+10%還元)。 |
元来、Lisp 族言語はプログラミング言語のアイディアの実験場だった。Lispの本質とも言える拡張性の高さ、およびコアとなる仕様のシンプルさがアイディアを実装し、使い、改善してゆくプロセスを容易にするからだ。しかし言語の自由さと安定した仕様との間には相反する関係がある。ひとたび言語が広く使われだすと、言語の根幹にかかわる仕様、例えば評価規則を変えるなどの変更は難しい。したがって、伝統から離れる新しいアイディアを実現した言語も、ユーザが増えるにつれ漸進的な進化に落ち着いてゆく。
そうやって枯れることは諸刃の剣だ。漸進的進化に安住してしまうと発想の源が制限されてしまう。時には連続性を捨てた異端児が生まれることが、言語の一族が進化してゆくためには必要なのだ。Clojure は、Lisp 一族にとって非連続な異端児と言える。Clojure の新しいアイディアが実戦を経て生き残るかどうかを見極めるにはまだ時間が必要だが、特に並行モデルに関しては他の言語を大いに刺激するものだろう。
もっとも、Lisp に馴染みのない読者にとってはClojure も他のLisp も似たようなものに見えるだろう。本書はLisp の知識を持たない人でも自然に読み進められるようになっているので、Lisp がどうの、という話は気にせずに(そして見慣れぬ括弧にあまり惑わされないようにして)、ひとまずは本書の例を実際に試してみてほしい。特に、小さいが強力な部品を組み合わせることで、高機能を簡潔に実現できるところに注目してみよう。そこには、言語を超えた普遍的なアイディアが示されている。本書で得た知識はClojure を使うのに役立つだけでなく、他の多くのメインストリーム言語に取り入れられつつある関数型プログラミングの概念を掴むのに効果を発揮するだろう。
......
(「訳者あとがき」より)
登録情報
|
|
|
|