>>53
丁寧なご説明、ありがとうございます。ですが、結局「気をつける」以外に無
いようで、少々残念です。

アンダースコアで始まるなどの特殊な変数名は、逆にフレームワーク側も衝突
回避を意図して多用している可能性があり、結局、変数名にプロジェクトごと
のprefixをつけたり、 instance_variables でこまめに確認したりするしかな
いように見えます。

しかしこれでは、グローバル変数しかなかった時代と変わらないと思います。
むしろ、メタプログラミングによって変数名やメソッド名がgrep検索できなく
なったRubyコードでは、名前の衝突の危険性は増しているとすら思います。

PHP5には完全なprivateがあり、Pythonにはマングリングという仕組みがあり
ます。Rubyにそれに類するものがないのは意外でした。

しかしRuby1.9でも変更される予定は無いようなので、実用的にはさほど困ら
ないものなのかもしれません。

ruby -d は知りませんでした。活用させていただきます。


>>57
53さんもおっしゃるとおり、フレームワークに継承を強制される場合をお考え
ください。
http://www.gesource.jp/weblog/archives/2007/06/rubyprotectedjavac.html
> フレームワークを使っていると、知らないうちに基底クラスのメソッドをオー
> バーライドしてしまい、予期せぬバグに悩まされたりします。