Lispの壁の高さ

『文學界』10月号に載っている円城塔「プロローグ」第6回で少しだけLispã‚„Schemeã‚„Gaucheについての話題になっていた。小説でGaucheへの言及があるのは他は木本雅彦『くあっどぴゅあ』だけだろうか。
Lispの処理系を入れたが、対話環境を触っても釈然とせず、エディタとしてEmacsを使うことにして……みたいな流れ。

このあたりまででもう、LISPに興味を持ったかも知れない人の九割九分を振り落とすだろう壁の高さだ。

LispでもSchemeでも、処理系を起動したときの対話環境に、ほぼ何の入力支援機能も備わっていないのはなぜなのだろう。
rlwrap相当の入力支援がデフォルトで付いていても良いと思うのだけど、そうなっている様子は無いし(ひょっとすると知らないだけでそういう処理系もそれなりにあるのか?)、処理系の起動時のメッセージを見てもマニュアルを見ても、「素の状態での入力は大変です」などと書いてあったりもしない。どうすればいいのかについて(例えばEmacsを使い、どう設定・操作するか)マニュアルの判りやすいところに書いてあることもあまりない。

とりあえず入っていた言語処理系を動かしてみるという人(例えばGNUが推してるらしいとguileを起動させてみるとか)は結構いそうだけど、そういう人にとってLisp・Schemeの印象はかなり悪い気がする。

ちょっとだけLispやSchemeに興味を持って少しだけ対話環境に触れた人の大多数はLispやSchemeのプログラムがとてつもなく書きにくいことを知るのみで、たとえすぐに去らずに情報収集しても、「Emacs使え」ってところでLispやSchemeにかかわるのをやめてしまう。
(追記: drracketが入力支援付きのGUI環境だった。ただRacketにしても、入っていたracket(mzscheme)を何となく起動してみたら入力支援なしの対話環境が現れ、入力支援付き環境があることに気づかず去ってしまう、というイメージ)
ひょっとして実のところLispやSchemeをあまり使って欲しくないのではとすら思ってしまう。それともまさか素の環境でも苦もなくS式を打ち込んでいるとか。

rlwrapがあればカッコ対応の表示とヒストリ機能と補完機能が得られるので、処理系をrlwrapでラップした1、2行のスクリプト(と補完語ファイル)を用意していっしょにインストールするというだけでも、処理系に触れた時の印象は多少は良くなる気がする(rlwrapã‚’Lisp・Schemeに使うときはいくつかのオプションの設定が必要なので、1、2行のコマンドであってもスクリプトになっているとうれしい)。
手元で起動させる処理系に限らなくても、いくらかリッチな入力支援付きのREPL環境がウェブ上に置かれていて、チュートリアル付きですぐに触って試せるようになっていれば、LispやSchemeで少しプログラムを書いてみるくらいに興味を持つ人が増えていく気がするのだけど。
そういえば「なぜLispを選ばなくてもいいか」という文章を書くつもりでまったくほったらかしにしていた。それに限らず、書くつもりだったり少しだけ書いて途中で止まっている文章やメモがかなりある。何を書くつもりだったか判らなくなっているものも多いし、いったん破棄したほうがいいかも。もともとこの文章自体Lispが本題ではなかったのだけど、本題に移るとまた中断しそうなのでここで終わる。
自分で何かを書くよりも、誰かほかの人たちが書く「なぜLispを選ぶべきか」を読みたいかもしれない。