"extreme late-binding"について、もう少し

先のエントリで"extreme late-binding"を「強力な遅延束縛」と訳してみたが、訳した本人がよくわかっていないのでw

"extreme"は「極限の」という意味。"late"は「遅い」「後半」「後期」「末期」という意味。

ということで、"extreme late-"で「ぎりぎりまで遅い○○」。

問題はbinding。「束縛」「拘束」の意味があるようで、「あるオブジェクトが別のオブジェクトを利用すること」みたいな意味なんだろう。「結合」と言っても良いかも知れない。プログラマにも馴染み深いし。

ということは、"extreme late-binding"で「ぎりぎりまで遅くしたオブジェクト同士の結合」みたいな意味か。実際の実行時に初めて、呼ぶ側のオブジェクトは呼ばれる側のオブジェクトと結合するようなニュアンスなのかな。

これ、オブジェクト指向言語と呼ばれる類の言語では概ね実現してることのように思ってしまう。が、よく考えると、静的型付け言語では呼ぶ側のオブジェクトを定義した段階で呼ばれる側のオブジェクトの内、そのオブジェクトがどんなクラスなのかについて限定する必要があり、呼ばれる側のオブジェクトのクラスを束縛してる(この場合、「束縛」のニュアンスの方が合うような気はする)と考えられる。「動的型付けはまだマシだ」と言う理由は「定義時のクラスの束縛」がない、または少ないからだろう。ただ動的型付けでも、メソッドを定義した時点で「利用するオブジェクトはそのメソッドを受け付けるはずだ」という、呼ばれる側のオブジェクトに対する暗黙の束縛は存在する←微妙なので、一旦削除。
一方、Smalltalkでは…どうなんでしょか?w

"extreme late-specifying"とか"extreme late-agreeing"を考えると、アジャイル屋の「必要になってから決める」ってのは、"extreme late-"なのかも知れない。というのは、別の話。