オブジェクト指向プログラミングとかデザインパターンについて認知心理学の側面から素人なりにおもいついたこと。

http://d.hatena.ne.jp/robbie21/20061103/1162503418の続きのようなそうでないような


誰のためのデザイン?―認知科学者のデザイン原論 (新曜社認知科学選書)』なんか読んでから、もやっと思ってること。


オブジェクト指向ってのは、人間の心理っていう面から見ると、要はメンタルモデルが作りやすいプログラミング技法なのかな。
あるいはメンタルモデルをそのままコードにしようって言う技法。コードとメンタルモデルのギャップを減らす技法。

といっても固定したモデルがあって、それを機械的にソースに落としていくって言うんじゃなくて、文章を書くことによってもやもやした思考が整理されていくように、コーディングすることによって現実とコードの世界をつなぐにふさわしいモデルを再構築していく感じ。
この辺がわかってないと、プログラマのひとからお絵かきモデリングって怒られちゃう。


そう考えると、オブジェクト指向って名前が悪いんじゃないかと思ったりもする。
名詞指向、概念指向、モデル指向とかどうだろう。要は、ほんとは「オブジェクト」指向なプログラムが表現したいのは、「もの」じゃ無くて、「もの」をある切り口から見たときの人間の思考ってこと。


そうすると、デザインパターンというのは、プログラミングしやすいメンタルモデルを共有しましょうって言うことになるかな。