「オブジェクト指向神話」神話

・「オブジェクト指向神話」神話
http://www.rubyist.net/~matz/20060120.html#p01

要するに「オブジェクト指向は万能ではない」または「適材適所」という話なので、一般論としては異論はない。私がいくらオブジェクト指向プログラミングの長年のファンだからといって、「万能」だとか「魔法の薬」、「銀の弾丸」のようになんでも解決すると主張するつもりはない。

とか言われても、C++とかJavaとかRubyとか、主流の「オブジェクト指向言語」を見せ付けられると、まるで「オブジェクト指向で何でも解決!」と言われている気がしてしまう。

だってさ〜、これらのプログラミング言語でプログラムを組むときって、とりあえず「Class」じゃん。Javaにいたっては「Class」無しではプログラム組めないし。(だったよね?) これって、プログラミング言語自体が「とにかくオブジェクト指向支援機能使え!」と言ってるような状態なんじゃない?んまぁ、それはいいすぎとしても、なんだか「オブジェクト指向支援機能利用の強制」を感じちゃう。もちろん、言語デザイナー的には、オブジェクト指向支援機能利用を強制した覚えはない、となるんだろうけど、個人的にはそう感じる。んじゃ、なぜこれらのプログラミング言語オブジェクト指向支援機能の使用を強制してくるんだろ?とか考えると、「オブジェクト指向は適材適所で使うと便利だよ。」なんて生易しい考えを越えて、まるで言語自体が「オブジェクト指向で何でも解決してやるから。」と言われてるように感じてしまうのも無理はないかと。

LispとCLOSの関係みたく、「オイラにゃ、オブジェクト指向支援みたいなモダンな機能はもっとりゃしませんが、それが便利だから使いたい、ってなら、ライブラリで供給しまっせ〜。」なんてスタンスなら、「オブジェクト指向は適材適所で使うと便利だよ。」なんてのも納得いくんだけど。

まぁ、結論づけると、「プログラミング言語」と「オブジェクト指向」の不必要なまでの癒着が、混乱の原因ではないかと。

あ、いや、だからって、プログラミング言語から「オブジェクト指向支援機能」をとっぱらえ!って話じゃないですよ。あくまで、「プログラミング言語」と「オブジェクト指向」の立ち位置を適切な距離にしようよ、って話。とりあえず、「オブジェクト指向言語」なんて言い方をやめるのも手かもね。