2006-06-15 (Thursday) [長年日記]
■ RRSE
日本Rubyカンファレンス 2006のライトニングトークスで紹介されていた RRSEをインストールしてみた.
RRSEというのはEmacsでRubyのドキュメントに比較的動的にアクセスできるスクリプトなのだ. とりあえず,導入手順を紹介してみる.
ReFeをインストール
RRSEを使うにはReFeがインストールされている必要があるので,まずはこいつを導入する.
サイトからリファレンスを含んだtar玉を落とす. 基本はtar玉砕いてでてくるドキュメントにしたがう. ただし,パッケージ管理されている環境を汚したくないので,以下のようにオプションを与えた.
ruby setup.rb config \ --prefix=$HOME/local \ --site-ruby=$HOME/lib/ruby ruby setup.rb setup ruby setup.rb install
このオプションで次のような構成でインストールされた.(ruby setup.rb uninstallできないのでメモしておく.)
- $HOME/local/binにいくつかのコマンド(ruby setup.rb setupすると./bin以下にできるやつ)
- $HOME/local/share/refeにリファレンス
- $HOME/lib/ruby/refeにライブラリ
最後に$HOME/local/bin にパスを通し,RUBYLIB変数に$HOME/lib/rubyを追加すればインストール完了. "refe String"などでStringのドキュメントが表示されることを確認した.
RRSEのインストール
RRSEはマニュアル通りにインストールすればよい.
プログラムの配備はファイルをコピーするだけです.
cp rrse-refe-listdescs ~/local/bin/ cp rrse.el ~/lib/emacs/
起動高速化のためにあらかじめファイル(シンボルのテーブル?)を作っておく.
mkdir ~/.rrse rrse-refe-listdescs > ~/.rrse/table rrse-refe-listdescs -r > ~/.rrse/rev-table
あとは.emacsをほげって終了. ただし,F1はEmacsのヘルプにしているので,F11に割り当てた.(RubyのコードみながらEmacsのヘルプを引きたいことなんてないかもしれないけどね...)
インストール完了.うむうむ.こりゃ便利だ. カーソルをメソッドに動かすだけでなんか出るし,リファレンスが日本語なので,ボクが使っていたriのヘルプよりも親切だ.
■ RRSEで対象の候補がないときにrefeを起動する
作者さんの日記にツッコミ入れようと思ったけど,ツッコミが機能してなかったので,ここに書いておく.
ライトニングトークスの発表でRRSEを知り,使わせていただいています.便利なプログラムをありがとうございます.
RRSEについてなのですが,メソッドなどにカーソルが乗っていないときにもrrse-helpですべての候補からリファレンスが引けると便利だと思いました.(refeはそんな感じになっています.) 私はRRSEの内部がよくわからなかったので,現状ではrefeを呼び出すようにしています.
diff -u -r1.1 rrse.el
--- rrse.el 2006/06/15 14:42:37 1.1
+++ rrse.el 2006/06/15 14:49:15
@@ -245,7 +245,7 @@
(interactive)
(let ((methods (rrse-find-specs)))
(cond
- ((null methods) nil)
+ ((null methods) (refe))
((null (cdr methods)) (rrse-show-help (car methods)))
(t (rrse-show-help (rrse-help-completing-read methods))))))
追記.トラックバックも打ってみましたが,機能していないようでした...orz
■ モデリングせずに実装してんの?
about 脱オブジェクト指向のススメ via memolog
今更ながらツッコミを入れておく.
オブジェクト指向が役に立たないという発言はちょっと愚かしい. オブジェクト指向もツールのひとつなんだから,役立つときに使えよ,と.
ってか,継承とかインターフェースはオブジェクト指向の本質ではないだろ. オブジェクトという単位による抽象化とメッセージのやり取りによるオブジェクト同士の連携がオブジェクト指向のキモだろ. 要するに現実世界のモデル化の手法としてオブジェクト指向モデリングがあり,それを実装するためにオブジェクト指向言語があるわけだよ. オブジェクト指向でモデル化してない対象領域をオブジェクト指向言語で実装してもうれしいことがないのはあたりまえ. それを理解していないとこうなるんだよな.イタイね.
これからのオブジェクト指向という話では, 次のパラダイムの流行が訪れても,それはオブジェクト指向に根付いたものになる,という考えが現在は主流だと思う. 今のオブジェクト指向プログラミングが構造化プログラミングと同居しているようにね.
話は変わるが,ソフトウエア開発については皆が開拓者であって欲しいよ. オブジェクト指向がすでにそこにあって,それを勉強する,ではなく, 適当にプログラミングをしていって,オブジェクト指向と出会って「あー,オブジェクト指向ってすげぇんだ」みたいな実感を伴った学習が望ましいよなぁ.
ちゃんと下地を積んで理解した人から新しいパラダイムが生まれるんだと思う. そういう意味では,ただ時代に流されるだけではやっぱりだめなんだよね.









RRSE作者の大林です。つっこみ等はスパムのフィルタのために投稿内容に<br>かなり強い制限をかけているのにひっかかったのかもしれません。<br>あとrrse-helpの件は了解しました。考慮します。
おわっ,ありがとうございます.便利に使わせていただいてます.<br>メールで伝えようかとも考えたのですが,本日のリンク元で気づいていただけるかも,と考え日記に書いてみました.上の件を含め,さらに便利なプログラムとなることを密かに応援しています.<br>(ほんとは機能を追加するパッチなどをサクッと書ければよかったのですが,ちょっとわかりませんでした.すみません...)