>>244
どーでもいーことだが、荻原氏のObjCの本にはprotocolは元は分散オブジェクト間の通信規約を抽象化したもので、現在はさらに広い概念で使われている(つまり多重継承の代用)。んでJavaのinterfaceはこれを取り入れたものと書いてある。
さらに分散オブジェクトのprotocolの設定に関して、あらかじめsetProtocolForProxy:を行うことでメッセージ送信の度にメソッドの引数の型チェックをしなくていいので通信の効率を向上できると書いてある。

たぶんObjCは型チェックがゆるいので、もともとprotocolのようなものは必要ないと考えられてたのだと思われ。それが分散オブジェクトにより、メソッドの引数を送信する必要が発生したのにあわせて導入されたのではないかと。