脱オブジェクト指向のススメ

この手の相談を受けるたび、正直私は気が遠くなるのだ。ITmediaの紙面上で書くのは少々気が引けるが、全国の悩める若者のために勇気を振り絞って書くことにしよう。

オブジェクト指向などクソの役にも立ちません!」

あー、書いちゃった・・・。いや、やっぱり、

「ときどき、役に立つときもあります」

くらいにしておきます。確かに役に立つときもあるなあ・・・、飲み屋でプログラマと会話するときにはオブジェクト指向を理解しておく方が会話がはずむかもしれません。あと、無垢なプログラマ初学者に先輩面するときにも役立つかもしれません。

こいつがプログラマという名の技術者でないことはこの文面から見て取れます。
プルグラマハケーン!(・∀・)!


第一声で反応はして見ますが、それで全てを理解したとは思わないのが生きる道。
後の文章まで読んでから決めます。
決めますた。
プルグラマハケーン!(・∀・)!!


それはさておき。
ひとつの技術を利用するには、ある程度の技量が必要になるもんです。
端的な例を挙げれば原子力
ウランをエネルギーに変える技術をもたなければ
あんなもんは単なる毒です。
技量を持たないものは「クソの役にもたちません。」って言えます。
技量を持つもの、または効果を想像できるものは
「そんなん使い方次第やん」って言います。


オブジェクト指向も同じ。
使える人間には効率化の役に立ちますが、
使えない人間には足枷となるでしょう。
武器は人を選ぶのです。

業務システム開発やWebシステム開発において、オブジェクト指向の導入?により、飛躍的に生産性が向上するといったことは(あまり)ありません。

さて。
生産性という言葉を使いますが。
「生産性」が飛躍的に向上したら、その結果どうなるか想像できるでしょうか。
生産性向上に貢献したプログラマはずっと楽になれるのでしょうか?
否。
楽できる期間があるとしたら、向上させた直後しばらくの間だけです。


なぜか?


生産性が向上するということは、全体の作業速度と質が向上するということです。
全体の作業速度と質が向上すれば、当然「必要時間」が短縮されます。
「必要時間」が短縮されれば、それに伴う「人件費の削減」を狙う輩が当然でてきます。
「人件費の削減」がなされれば、売り上げに対する支出の割合が減ります。
支出の割合がへれば、その分値引きしても儲かるという頭が働く輩もでてきます。
値引きすれば売り上げが減りますが、数をこなしてトータルで儲かるように動くものです。
数が増えればってのは案件数をさします。
人件費の要素で人は減っています。
人が減った状態で、こなさなければならない案件数が増えたらどうなるでしょう?
キッチリ消化できるだけの作業量ですむことなどありません。
プログラマ的な視点でみると、これは決して「楽になった」という実感は持てません。


しかし、現実を振り返れば間違いなく生産性の向上により、
経営的には次の手が打てているっという状況に貢献できています。*1


まとめると。
「生産性が飛躍的に向上すると、それに伴い解決する前のとはまた違った苦労が舞い込んで来る。」
です。


この仕組みに打ちのめされ経験がある者が、
生産性の向上に貢献しなくなるのを誰が非難できるでしょうか。*2
日本の企業の仕組みの中では、現状「必然」とよばれて仕方のないことに思えます。


なんて悲観的にみてみたものの、
現実に「飛躍的な向上」がどこかであったからこそ現代の仕組みが出来上がっているのです。
COBOLVBに移ってたころにWEB万歳な日がすぐ来ることを予想できたでしょうか。
いつか未来の日に〜と思いはすれども、10年足らずで世の中が変わったことは劇的な変化ではないのでしょうか。
武器を駆使して世の中を変えるのに貢献したやつらがいてるのです。
それを無碍にして「オブジェクト指向つかえねぇ〜」と声だけあげるのはあれです。
( ´,_ゝ`)プッ
っと思えます。


<<追記>>:
おいらが書いてた過去ログにオブジェクト指向をどう捕らえているのかってのを記述してたので
ここからどぞ。

*1:次の手が上手いか下手かはプログラマの関与できるところではありませんが。

*2:おいらは非難するかもしれませんが( ´∀`)w