previous up next_inactive
Up: Home

Clojureをつくったわけ

Rich Hickey

(翻訳 丸井淳史)

2009年11月28日(土)

The original document appears at http://clojure.org/rationale. The translation is based on November 27, 2009 version of the page.
読みにくくて申し訳ないです。数多くの間違いがあると思いますので、ご指摘ください。

顧客や出資家は、業界標準のプラットフォームであるJava仮想マシン (Java Virtual Machine; JVM) に相当な投資をしており、そのパフォーマンス、セキュリティ、安定性などに満足している。Java開発者は、動的言語の簡潔さ、柔軟さ、生産性をうらやましく思うものの、顧客の環境で動かせるかどうか、既存のコードやライブラリが使えるかどうか、そして動作速度などについて心配するかもしれない。また、ネイティブ・スレッドやロッキングによる並行処理に頭を悩ましているかもしれない。こうした文脈において、Clojureは実用的な動的言語--現在Javaが用いられている分野で同様に使うことができる汎用動的言語--を開発する試みでもある。また、並行処理プログラミングの未来のためにも、いま蔓延している``適正に管理されていない変種''はすぐに舞台から退場すべきである。

Clojureはその目的に次のように対応している。業界標準かつオープンなプラットフォームであるJava仮想マシンを利用し、由緒正しいLispを現代化し、イミュータブルで永続的なデータ構造により関数型プログラミングを発展させ、そしてソフトウェア・トランザクショナル・メモリと非同期型エージェントを用いて、並行処理をネイティブ・サポートする。できあがったのは堅牢で実用的かつ高速な言語だ。

1 なぜClojure?

なぜ私は新しいプログラミング言語を書いたのだろうか。次のような特徴を持つ言語が見つからなかったから、という理由からだ。

以下ではClojureの特徴や開発理由などを簡単にまとめた。

1.1 Lispは良いものだ

1.2 関数型プログラミングは良いものだ

1.3 言語とプラットフォーム

1.4 オブジェクト指向は評価されすぎ

1.5 多態性は良いことだ

1.6 並行処理とマルチコア

短く言えば、Clojureは強力な並行処理をサポートしたJava仮想マシンのための実用的なLispであると言える。featuresでその機能を確かめてもらいたい。


previous up next_inactive
Up: Home
MARUI Atsushi
2013-01-12