|
Cloud Days 2月28日(火) エムオーテックス 2月28日(火) 米国セールスフォース・ドットコム 2月29日(水) シマンテック ドット クラウド |
ソースコードを見ようある技術について初心者向けに説明するときに、喩え(たとえ)を使うことがある。確かに、初めて聞く技術を、知っている身近なものに喩えて説明されると、なんだか分かったような気になる。ただし、こうした喩えによる説明の理解度は、説明する側、される側の両者が思っている以上に浅い。 筆者の経験では、オブジェクト指向を説明する際に用いられる喩えがそうだった。例えば、クラスとインスタンスを説明するのにしばしば用いられる、クッキー(菓子)の型とそこから作られるクッキーの喩え。クラス間の階層関係を表す継承の説明では、動物クラスの子クラスに哺乳類や鳥類のクラスがあり、哺乳類クラスの子クラスに犬や猫のクラスがある、といった喩えをよく聞く。ポリモーフィズム(多態性)の説明は、犬インスタンスに「鳴け」と言うと「ワン」と鳴き、猫クラスに「鳴け」と言うと「ニャー」と鳴きます、と言った具合だ。 オブジェクト指向についてのこうした説明を読んだとき、筆者は、何となく分かったような気はしたものの、まったく腑に落ちなかった。当時はオブジェクト指向プログラミング言語の経験がなかったこともあり、こうした説明では、そもそも、オブジェクト指向のこれらの特徴がアプリケーション開発にどんな役に立つのか、どう使えばよいのか、まったくイメージがわかなかったのだ。 ソースコードと併せた説明で初めて腑に落ちたそうした状態がしばらく続いた後、機会があって、Javaの書籍を読んでみた。そこでは、クラス、インスタンス、多態性などが、Javaのソースコードと併せて説明されていた。そこで筆者は初めて、腑に落ちた気がした。難しそうに思えた多態性も、ソースコード上は、比較的簡単な仕組みで実現されていることも分かった。 今、改めて考えると、オブジェクト指向を説明する際に用いられる喩えは、決して間違ってはいない。オブジェクト指向を理解した人が、いかにわかりやすく説明するか、と考えた結果、こうなったのだろう。当時の筆者が腑に落ちないと不満に感じた原因はおそらく二つある。 一つは、説明する側に起因する。おそらく、クッキー(菓子)や動物の喩えを読んだ人が、次に人に説明するとき、安直にこの喩えを使い、それを読んだ人がまた別の人に説明するのに使う、という過程が繰り返された。その結果、喩えが、当初使われていた文脈から切り離されて広まっていったのだろう。 もう一つは、説明される側に起因する。こうした喩えによる説明だけを、何度繰り返し読んでも、技術を理解することはできない。喩えはあくまでも喩えであり、実際とは必ず差異があるからだ。腑に落ちないのは当然で、早く次の段階に進まなければならない。 ある技術を理解したいと思ったら、過去に少しでもプログラミングの経験がある人であれば、プログラムのソースコードを見ることをお勧めしたい。Webやスマートフォンなど、現在注目されているどの技術でも、アプリケーションを開発する際には、ソースコードが必要になるからだ。ソースコードを見ることで、技術に対する理解が深まり、これまでは気づかなかったアイデアを思いつくこともあるだろう。実際、ニコニコ動画などの画期的なサービスの多くは、プログラミングの現場から生まれている。 日経ソフトウエアでは毎号、アプリケーション開発の最新技術などを、ソースコードと併せて解説しています。最近のIT技術のより深い理解の一助になれば幸いです。 連載新着記事一覧へ >>
|