#:g1: Lispを書くのにEmacsを使わない人

Posted 2021-12-05 18:37:05 GMT

Lisp一人 Advent Calendar 2021 6日目の記事です。

ブログに書けそうなネタを思い付いたらメモっておくネタ帳のようなものがあるのですが、『Lispを書くのにEmacsを使わない人』というお題で何か記事を書いてみたいと思ってから6年半経ちました。
そんな6年半の間に、古き良きvim(vi) vs. Emacs のような構図どころではなく、エディタ界はいつの間にかVS Codeが席巻しつつあります。

結局のところLispエディタには何が必要なのか

とりあえず、エディタ人気には栄枯盛衰がありますが、Lispの編集について必須要件というのは昔からあまり変っていません。
また、この必須要件を無視したようなエディタ議論をしてもLisp編集についてはあまり資するところがないかと思います。

ということで基本的な必須機能をまとめてみました。

Lisp開発で必須なエディタの機能

基本機能

Lispとの連携

ドキュメント参照

大体上記が整備されていれば、どんな環境でも良いと思いますが、Common Lisp界隈で好まれているSLIMEは、上記を大体満足なレベルでクリアしているので、SLIMEを勧める人が多いと思います。
加えて、新興のエディタでは、Lisp固有のサポートはなかなか整備されない傾向が強いので、S式の移動と、マクロ展開あたりは、SLIME等に比べれば貧弱です。
そのため、SLIMEを知っている人からするとSLIME一択という感じなのですが、Lispの対話的開発自体に馴染みがない人達からするとメリットがいまいちわからず、何やら考えの凝り固まった人達が勧めているもの、という目で見られている気がしないでもありません。
さらにいうと、Symbolicsを始めとしたLispマシンの開発環境がありますが、SLIME利用者でさえ、考えの凝り固まった懐古主義者が勧める謎環境という眼差しを向けているような気がします。
実際のところ非常に強力な環境だったので、以後のLispの開発環境は多かれ少なかれSymbolicsの環境を再現しようとしていたといっても過言ではないのですが、この辺りにも断絶があるように思います。

まとめ

新しいから良い、古いから駄目というのではなく、単純に実現したい機能で比較すれば、それなりに妥当な評価が得られると思うのですが、実際に環境を並べて比較するようなレビューは殆ど目にしたことがない気がします。この辺りが問題なのかもしれません。

また、Lisp固有の開発ツールについて解説していることも少ないので、長年Lisp開発をしていても、マクロ展開はREPLでmacroexpand式を実行している、という人も割と珍しくなかったりしますので、多分、詳細な解説の書籍かなにかが求められているのでしょう。 といってもマイナーすぎて採算取れなさそう。


HTML generated by 3bmd in LispWorks 7.0.0

comments powered by Disqus