elispにもin-packageは欲しいよ

http://d.hatena.ne.jp/wasisan/20080412/p1

俺はLispは大好きだが、正直elispはそんなに好きじゃない。
俺にとってelispの嫌なところは遅いことと合わせて名前空間を分割することができないこと。名前空間を分割できないから、たとえばhoge.elを書くときは関数名・変数名にhoge-XXXとかにしないといけない。で、hoge-XXXからhoge-YYYを呼ぶときはいちいちhoge-YYYと書かないといけないから無駄に行が長くなってしまう。おまけに、hoge-Xなどと打ってからでないと正確なdabbrevができないのも痛い。

まあ、内部で使う関数はfletで関数内関数にして名前を短くすることはできるのだが、今度は外から見えないからadviceを定義することができないし、内部関数のユニットテストを書くことができない。だからfletは多用できないというジレンマ。

俺は内部用の変数・関数のprefixはなるべく短くするように心掛けている。公開するコマンドに関しては長いprefixをつけている。

よく問題にならないなあと逆に感心する.

「問題にならない」のではなくて「わかりきってる問題なんだけどうまい対処方法が見付からない」といったところだろう。
で、in-packageを導入するとしても既存の膨大なコードとの互換性はどうなるのか。俺も含めて欲しい開発者は多いとは思うけど、互換性のせいで尻込みしているんじゃないかな。ここでは歴史の重みが裏目に出ている。

俺も名前空間問題にはそりゃあうんざりしてる。だけど、腐ってもLispだから強力なマクロや高階関数が使えるし、DSLが簡単に書ける。構文木だっていぢれる。「(eval-when-compile (require 'cl))」すりゃあのloopマクロだって使える。欠点はあるけど、それを上回る美点があるからこそなんだかんだ言っても俺はelispを書く。loopとかdestructuring-bindとかを使えばまだそんな捨てたモンじゃない。

まあそんないじめないでくれw欠点は痛いほどわかりきってるのだから。