見出し画像

Retro-gaming and so on

RE: プログラミング日記 2022/03/13~

星田さんの記事に対するコメント。
今回は一つだけ。

clojureって何だよと思ったら比較的新しいlisp系の言語らしい。

はい。
あれ、でもLand of Lispで紹介されてなかったっけ・・・・・・。


まぁ、巻末だからなぁ・・・・・・。

ええと、一応。
Clojureは2007年に登場した、21世紀産まれのLispです。
紛らわしい事に、ANSI Common Lisp処理系にはClozureと言うモノもあって、それとは違うんで、混乱しない事。また、いわゆるクロージャはClosureです。Racketユーザー的には受け取った文字列を(compose cadddr string->list)で判別するしかない(謎
それまでは、ポール・グレアムが「開発中」って言ってて期待されてて注目されてた新LispはArcだったんだけど、Clojureが登場した時点で、Arcを抜き去って人気が出ちゃった、言わばダークホースだった(笑)。衝撃的だったなぁ。
ANSI Common Lispに続いて、「実用性」に重きを置いたLisp。そしてその「実用性」はClojure内には、誤解を畏れないで言うと「無い」(笑)。
どういう事か、と言うと、このLisp、Javaで書かれてて、JVM上で動作する(Clo"j"ureのjはJavaのjだ)。
つまり、Javaの為に書かれた豊富なライブラリを使い放題、ってぇのが特徴なんだ。言わばコバンザメだ(笑)。
このテの言語は他にもあって、JVM言語、とか呼称されている。Twitterを書いてるScalaもJVM言語なんだけど、要するにシステム的にはScalaの仲間、って言って良い。
他のClojureの特徴は、

  • 再帰が苦手(と言うのもJVMが再帰処理が苦手だから)
  • Haskellみたいにかなりの部分が遅延評価ベースのLispとして再設計されている
  • 破壊的変更操作にリスクが出るように設計してて、素から関数型プログラミング指向になっている
って辺りかしらん。ザックリ言うと。
んで、Lisperにもまぁ、評価はされてるんだけど、あまり出てこない「Javaのヘビーユーザー」で「Javaユーザーの中で尖ってる人たち」(Javaはそもそも「平均的なプログラマ」向けに設計されてるので、尖った人はあまりいない)に割に好意的に受け取られてるのね。新しい、CLerやSchemerとまた違った別種のLisperを産み出しています。Emacs Lisperみたいな「別カテゴリのLisper」を産み出した、と言うか。
これ、一つの理由としては、Javaって現時点、圧倒的にサーバーベースのプログラミングに使われてて、もっと簡易にプログラムが出来ないか、ってニーズがあって、それに合致してた、って事なんですよ。サーバーサイドJavaScript、なんつーのもあるんだけど、それに代わる一つの手段としてClojureの存在意義があるんじゃないかしらん。

一応、入門書も出てるくらいにはポピュラーです。訳者はGaucheの父、プログラミング界の王羲之で、Land of Lispの翻訳者でもある川合史朗さん。

まぁ、でも僕個人はインストールしてない・・・って言うか、初期のClojureは簡単にインストール/利用可能だったんだけど、どんどんシステマティックになって行っちゃって(笑)、それは一般ユーザーが分かりやすい、と言うよか「Javaをよく知ってる」人たちに分かりやすくなってる、カンジだったんで離れちゃったのよね。何だかその辺のインストールのシステム周りがよく分からなくなっちゃって。今はどうだか知りませんが。

なお、例によってSpacemacsでもClojure Layerってのが提供されてるくらいなんで、世界レベルでもそこそこ人気はあるんでしょう。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「RE: プログラミング日記」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事