日記
Re:オブジェクト指向は難しい?(2) from ただのにっき (13:50)Edit

だって我々は、生まれたときからオブジェクトに囲まれて生活しているんだよ? だから、オブジェクト指向は本来、母国語と同じくらい身近な概念のはずである。

確かに「我々は、生まれたときからオブジェクトに囲まれて生活している」という意味でのオブジェクト指向(的考え方を行うこと)は難しくないかもしれない。しかしそれと、「オブジェクト指向に基づいてプログラミングを行う(ソースコードを書く)こと」の間には、結構大きな差がある気がする。

どんな外国語でも、しょせんは人間の持つ似たような概念を表現している(そこで使われている概念自体は知っている=生まれたときからオブジェクトに囲まれている)けれども、だからといって簡単に身につけられる(外国語を話せる=プログラミングで活用できる)とは限らないように。

とかいいつつも、世の中には簡単に(外国語/オブジェクト指向を)身につけられる人も結構いるんで話がややこしくなるんだけど。

そういう差が出てくる原因は、「本来は簡単なものを難しいと考えてしまっている」だけなのか、それとも「ある分野が得意な人には、その分野を不得意としている人のことが理解できない」ということなのか、どっちなのかはよく分からない。安全側に倒して判断するならば後者を支持することになるし、楽観的に考えるならば前者を支持する感じかな。

今日は出向先でごちゃごちゃやっている最中なんで、この文章あとで推敲します。概念なんて中途半端な言葉を持ち出してしまったばかりに、多義的な文章になってしまった。


推敲というか、言い訳的補足を追加してお茶を濁すことにしよう。

まず、オブジェクト指向という「概念」なんて言葉を使ったのは間違い。私が思い描いていたものは、「オブジェクト指向を駆使してプログラミングを行う(設計およびコーディング)能力全般」のこと。「全般」を表現するのに「概念」なんて言ったけど、「全般」と「概念」は違うよね。でもその割には、「概念」なんて自分が使った言葉に発想が引きずられてしまっている部分もある。しかも暗黙のうちに「手続き型プログラミングを身につけた人が」という前提条件を設定してしまっている。大失敗。

もうちょっときちんとした表現で言いたいことをまとめてみる。

(まず手続き型プログラミング手法を身につけた人が、)オブジェクト指向に基づいて実践的なプログラムを書く技術を身につけることは、新しい外国語・外国の風俗を身につけることと同じくらい難しいかもしれない。従来の手続き型プログラミングの世界とは、使われている用語や土台となる考え方に大きな違いがあるからだ。

しかしオブジェクト指向は一度身につけてしまえば、プログラミングの際の思考方法が簡単になる。原始的なプログラミング手法は、記号によるデータ操作と条件判断の羅列(手続き)を記述するといったイメージだったが、人間は無機的なデータや記号の塊について考えるよりも、ものの特性を捉えつつ指示を行う、というオブジェクト指向モデルの方が扱いやすいからだ。

また、オブジェクト指向の背景にある思考パターン自体は、もともと人間が日常的に使っている思考パターンに近いので、それと理解することさえ出来れば、身につけるのは「簡単である」と言えるかもしれない。

うわー、二連発で「からだ」でしめるなんてだせー文章だなー。でもまあいいや。あと、構造化の段階をわざとすっ飛ばしているのは、表現手段としては妥当かな? 不当かな?

Published At2003-07-29 00:00Updated At2003-07-29 00:00