なぜクラスは名詞、メソッドは動詞なのか。

ってことで、オブジェクト指向の本には、名詞を抽出して、それの振る舞いを定義して・・・みたいな面倒なことが書かれてあるのが通例だが、そもそも、なぜクラスは名詞なのだろうか?
私見では、プログラムを英語風に捉えたときに、クラスは、主語、もしくは目的語になるからじゃないかと思う。たとえば、セールスマンが、包丁を売ることを考えてみると、コードに直すと以下のようにでもなるだろうか?

Salesman* Jim = new Salesman();
Jim->set(knife);
Jim->sell(oldwoman);

ここで出てくるクラスは暗黙のものも含めて、Jim,knife,oldwomanなのだが、どれも名詞であり、主語ないし目的語になれる。

このことにより、人の職業がクラス名になるとやばい設計の見本であることが多いことも説明できると思う。
○○Managerや○○Playerがその典型例だ。人は成ろうと思えば難にでもなれる万能な存在だ。*1だからクラスの責務が大きくなりがちなのだ。


あなたの書いたクラス図上にManagerはいないだろうか?そのManagerは優秀すぎやしないだろうか?

*1:少なくとも概念としては