rushはRubyのシェル

http://journal.mycom.co.jp/news/2008/02/22/042/index.html
http://rush.heroku.com/

Rubyなシェルを夢見る人はけっこういると思う。俺もirbsh作っていた。あれはシェルコマンドの実行がirbの中でできる拡張といった感じ。だけど所詮irbEmacsインターフェースをつけたものなので、進化するためにはirbを拡張する層を作る必要がありそうだ。

rushつこてみた。まだα版だから貧弱。interactive shellとして使うには、補完やチートシートがないとだめだな。だけどRubyシェルスクリプトDSLとしてなら使い道がありそうだ。今後が楽しみ。

interactive shellとしての使い易さでzshと並ぶのは並大抵の苦労ではないことは確かだ。少し考えただけでもこんなにたくさんのものを実装しないといけない。車輪の再発明か。

現実的に考えて、interactive shellとしてはzshと並ぶことはないだろう。むしろzshbashから簡単にrushの機能が使えるようにしたほうがいいんじゃないかな。

そもそも長年使ってきたシェルを置き換えること自体非現実的だ。Unixのシェルはたしかに欠点が多いけど、なんだかんだ言っても長年付き合ってきたわけだ。コマンドライン履歴や熟練度はそれなりにある。そこでrushに乗り換えるとしても乗り換えた時点でrushの熟練度は0だ。新しくDSLを覚えないといけない。
そしてなにより「zshbashで培ってきたコマンドライン履歴が使えない」、これだけで乗り換える価値が無くなる。履歴が呼び出せないシェルなんて価値がないからだ。履歴をrushの構文に翻訳することができれば話は別だが。

rushはinteractive shellとしては全く期待していない。zshを上回る使い易さを実現する自信がない限りそっち方面には行ってほしくない。
だが、理想的なシェルスクリプトDSLへと進化してほしい。そういう意味で応援している。