#:g1: Lispコミュニティを考える: Lispコミュニティと一括りにするが

Posted 2022-01-09 00:40:04 GMT

Shibuya.lisp Tech Talkが久々に開催されるとのことで、Shibuya.lispの初期の歴史について話ことになってしまったのですが、うまく喋れる気が全くしないので話が空中分解して意味不明な話になった場合の予防処置をしておきたいということで、Shibuya.lispを中心として私が考察したLispコミュニティというものをまとめておきたいと思います。

マイナーコミュニティなのに消滅しない理由を考える

マイナーコミュニティ全般にいえますが、参加者が0になれば消滅することになります。
実際には増えたり減ったり消滅したり再生したりを繰り返していますが、これらは何種類かに分類できるかと思います。
これを参加者のバックボーンと呼んで分類してみましょう。

業務バックボーン

業務で携わることになった人達です。
いまどきだとClojureの人達は割合にこのあたりに該当するかと思います。
古くはCommon Lispに多かったと思いますが、昔のLispを懐しむけれど今はLispを書いていないようなプログラマはこの辺りに属するかと思います。
ありがちなセリフ『本物のマクロが恋しいよ』、『機会があれば書きたい』、『Lispで飯が食えるのか』

研究者バックボーン

研究者の方は息が長いのが特徴です。
息の長い研究者コミュニティというバックボーンが別途あり、その運用方法なども確立されているようにみえます。
Lisp/Schemeでいえば、1980年台に活躍されていた先生方はこの辺りに属しているかと思います。
たまに世間でブームになったときに里におりてくるようなところがあります。

愛好者バックボーン

愛好者にも色々ありますが、処理系作成と、Common Lispのようにアプリ寄りの人達がいます。
マイナージャンル故、教えてくれる人が身近におらず独学者が多いので書籍の影響が異様に強いのが特徴かと思います。
その為か、実際にコミュニティでコードを書いている人達より、Paul Grahamのような有名なハッカーや、著者の先生の思想に影響を受けています。
ネタ元自体がそれ程多くない故、どの本の受け売りなのかネタ元が特定できますが、書籍の情報はどんどん古くなるため、古い知識が再生産される源泉にもなっています(Lispはインタプリタだから遅い説など)

なぜLispで一括りにされるのか

なぜLispで一括りにされるのか不思議に思っていましたが、もしかするとLispの登場が古い故にトピックの分類や棲み分け自体も古い形式を引き継いでいるからかもしれません。
例えば、C系統の言語は、分派それぞれでコミュニティを作りますが、Lispは『方言』としてLispとしてまとまる傾向があります。
Lisp、Algol、Fortranが登場したばかりの1960年代では、『方言』という括りで、主に実装者や研究者がその傘下に集っていたようですが、時代が下ると『方言』より細かい個別の言語でコミュニティを形成するようになり、言語を横断するような概念に関しては、『○○パラダイム』や『△△指向言語』として別途横断的なコミュニティを形成するようになったように見受けられます。

Lispではコミュニティにおける処理系作成者の比率が高いということもあり、自身が開発した処理系をLisp『方言』と考え、方言が集まったLispコミュニティを想定する方がしっくりくということもあるのかもしれません。

Common Lispや、Clojureでは処理系よりアプリへの関心が主なのでLisp方言という括りに関心がある人は多くはありません。特にClojureは個別にまとまる傾向が強いと感じます。

Lisp方言とバックボーン

さて、バックボーンを説明したので、方言とバックボーンの関係を考えてみたいと思います。
また、再生と消滅を繰り返しているので、再生の火口になっていると考えられるものも併記してみます。

Common Lisp

日本でも海外でも一匹狼の集団といわれることが多いCommon Lispの人達です。
Lisp熱が昂じた結果、業務プレイヤーがLispプログラマとしてフリーランサーとなったような人は良く見掛けます。

Clojure

Common Lispの人達程世の中の流れに抗っている感じはなく、割と時流に乗っているようにみえます。
Java資産に乗っかっているようなところも程良いバランスを保てているところかもしれません。

Scheme

実際に職場でSchemeを採用して複数名で開発をしている、というのはCommon Lisp以上に見掛けません(個人的には皆無)。
最近ではプログラミング言語の研究テーマ抽象的なトピックが多いようで特定の言語でどうこうというのは下火のようです。アカデミック寄りのRacketは教育を主軸にしているように見えます。
SRFIを含めたSchemeコミュニティを概観すると、Schemeの仕様を中心とした処理系製作者コミュニティという趣があります。

まとめ

なぜLispとして一括りにされるのか、Lispとコミュニティ、等について考察してみました。
個人的にはLispとして一括りにするのは、オブジェクト指向言語全般で一括りにするのと大体似たようなものだなと思ったりです。


HTML generated by 3bmd in LispWorks 8.0.0

comments powered by Disqus