2月24日のエントリに「書いてあることはどれも正しいし、この本は一読の価値がある。しかし、読めば読むほど気分が悪くなるのはなぜだろう。」と書いたわけだが、もうちょっと考えてみた。
あの時にも考えたように「正しいことを指摘されると腹が立つ」というのが一つ。もうひとつは彼の文章にはプログラミングに対する愛が感じられないのがもう一つ。彼自身もプログラミングする人のはずなんだけどな。
そして、最後にもっとも大きな理由は、私自身が彼に揶揄される立場だということだろう。たとえば、私は彼の言うアーキテクチャ宇宙飛行士のあらゆる属性を備えているし、オープンソースに対するややナイーブな立場もそうだ。
してみると腹が立つのも当たり前か。
感情は制御して、良いことを学ぶことにしよう。
Gimiteさんにもらったアイディアが当初思ったよりも有意義かもしれないと思えてきた。
localというvisibilityを導入して、関数形式でメソッドが呼ばれたときは「localメソッドを探索(そのクラスのみ)→見つからなかったらその他のメソッドを探索」というのは…効率が悪くなるから駄目でしょうか?
基本的な部分は「private問題」で行った実装と共通なので、そのまま流用する。割と簡単に実装できた。
試してみる。
ふむ、なかなかいい感じだ。後方互換性も高い。ちょっと試してみよう。
また、以前検討していたBasicObjectも導入してみた。こちらもちゃんと動いている。以前試した時にはあまり使えない印象だったが、最近、定数の検索順序を変更したのが、うまくいったみたい。
ただ、まだバグが残っているのでもうちょっと試してからコミットしたい。