Java脳

そういえば、というか。

話をよーく聞いてみると、クラスとオブジェクトの区別がついていなかったり、継承と集約(とコンポジション)の区別がついていなかったりして、「もっと多態性を活かしたクラス設計にしなさい」と言うと、「多態性ってなんですか?」と逆に聞かれる始末で、これってゆとり世代よりずっと深刻なんじゃないかと思ったりした。仮にもプロとして。

こういうのを見ると、典型的な Java 脳というか、なんか違うよなー、と思う。PythonRuby ではクラスもオブジェクトだし。まぁ、言いたいことは分からないでもないけど。さっくり言ってしまえば、オブジェクトの振る舞いを規定するのがクラスというだけの話なんだけどね。で、Java なんかではクラスがそのまま型システムを構築したりもする。
ちなみに、Python では type の type は type というわけ分からん状態だったりするんだよな。

>>> type(type) is type
True

しかし、「多態を活かしたクラス設計」という指示はなかなかあれだ。多分、switch を多用したコードに対して言っているんだろうけど、インターフェースを切り出して抽象化して同じインターフェースを持つ別々の実装を統一的に扱えるようにしろ、という話だよね、多分。まぁ、多態という言葉が分からない人にそういうことを言っても分からないと思うけど。