クラス vs 関数


このリンクの先についている「なぜオブジェクト指向は嫌われているのか」は面白いなあ。確かにクラスはJavaみたいに大げさにしすぎると使いづらい。Javaのライブラリを設計した人は、汎用化するためにクラス化しすぎたのではないだろうか。


まだ全部読んでないが、特に「文字列の分割がしたい!⇒Tokenizer」は分かりやすい。Javaの文字列クラスにもsplitメソッドはあるが、Pythonは分割したリストをfor文でまわすだけで良い。但し、ジェネレータとしてsplitする方法が見つからなかったが、恐らくどこかにあると思う。とにかく、Tokenizerを使うメリットが全く見えてこない。


オブジェクト指向自体は良い概念だが、使い方を間違えると結構やばい。クラスの個数が増えるというのは、クラス同士が疎結合になり、でも同じクラスとして使えるという手法は重要だと思うが、Mix-inはそういう意味では良いと思う。但し、Rubyを見ていると継承関係が複雑になっているかもしれないし、ビルトインクラスのメソッドの個数が多すぎて複雑になっている。Pythonみたいにシンプルにすると、欲しい機能が別のクラス(やモジュール)に入っていたりするので分かりづらい。結局バランスだと思うが、この辺はもう少し研究したい。