昨日に引き続き、今日もプログラム関連のコラムを読み漁る。
http://www.objectclub.jp/technicaldoc/object-orientation/OO_redefine/
「オブジェクト指向の再定義」。
なんか頭デッカチな奴みたいで嫌だが、
別に僕はここで「オブジェクト指向とは何ぞや?」みたいなことを説く気は無い。
物事にはまず、理由があるのだ。
「オブジェクト指向ってスゲーらしーぜ」ではなく
「何のためにオブジェクト指向なんてものが生まれたのか?」という事を考えてみる。
--- ちょっと脱線… ---
前にテレビでやっていた「爆笑問題 vs 東大生」でこんな話をした学生がいた。
僕らがこんな凄い事をやっているんだから、一般の人も
専門用語なんかを学んで僕らの言う事を理解してほしい。
つまり、自分達が一般人に理解されないのは
一般人のレベルが低過ぎるからと言うのだ。
こういう考えを持った人はたまに見かける。
「俺ってこんな凄い事やってんのに、なんで皆わかってくれないんだろう」
これは大きな間違いだ。
自分の事を、自分で評価してはいけない。
相手が理解してくれないのならば、自分の方から相手に歩み寄るべきなのだ。
それで初めて、その人は評価してくれるだろう。
--- 専門用語 ---
で、話を本筋に戻すと。
僕は開発者だけど、なるべく専門的な単語は使わないようにしている。
面接時など、たまにこういった専門用語を連発する輩がいる。
僕はそんな時、「専門用語バリバリ使って格好いいなぁ」とは決して思わない。
「専門用語でしか話せないなんて、会話の幅が少ないなぁ」と思うだろう。
開発の現場にいれば、専門用語なんて勝手に覚えていくので
知ってて当たり前なのだ。
それを話せるのはいわば当然。一歩進んで、いかにそういう単語を知らない人を
納得させる話を出来るかだと思う。
僕が公開してるプログラム関連のページも、
なるべくそういう事を意識して書いている。
そのために、作った後に必ず読み直す。
わかりにくい表現や言い回しがあったら、もっと簡単な言葉で表現してみる。
何人かの訪問者は、わかりやすいページだと褒めてくれた。
--- 最初に戻って… ---
で、ようやく話は戻ります。
オブジェクト指向を説明したページを見ると、
訳のわからん専門用語を羅列したようなものがよくある。
こういったページで納得してしまうような人は
まさに「証拠より論」的な考えの持ち主だ。
「こんな高尚な概念を知ってるんだぜ、俺は」といった感じのね。
一番大事なのは、「それによってどんな効果があるのか」という事。
理論を知ってても、それを実践できなければ何の意味も無い。
オブジェクト指向の概念や単語なら知ってる人はいるけど
それを実践している人は本当に少ない。
なぜなら、それを実践で使うためには相当の経験が必要になるからだ。
自分で使ってみて、あぁなるほど
オブジェクト思考ってこういう風に便利なんだと納得できる。
--- で、結局… ---
作りたいものがある。そうしたら、それを如何に効率良く作れるか。
それを追求していったら、いくつもの開発手法が生まれた。
そのうちの一つが、オブジェクト思考だ。
そんなに大したものじゃない。
オブジェクト思考は魔法のアイテムではないんだから。
でも、知っていればいつか役に立つかもしれない。