BOX@Eelこの広告は、90日以上更新していないブログに表示しています。プログラミングあるいはプログラマ(プログラミング言語の話者)にサピア=ウォーフの仮説的な症状がみられる原因の考察。プログラマにとって高水準言語はコンピュータを覆う抽象化層であり、ユーザインタフェースである。高水準言語によって抽象化されたコンピュータの姿は、言語ごとに異なる。プログラマはソースコードについて「ああ書けばこうなる」というメンタルモデル*1をもっている*2。このメンタルモデルは、言語というユーザインタフェースを通じて「抽象化されたコンピュータの姿」を理解したものだ。ある言語のプログラマ達がもつメンタルモデルは(個人差はあれど)概ね似ている。相手にしているユーザインタフェースと「抽象化されたコンピュータ」が同じだから。*3言語が異なればユーザインタフェースや「抽象化されたコンピュータの姿」が異なるので、プログラマのメンタルモデルも異なってくる。プログラマの技術的判断はメンタルモデルに大きく左右される。よってプログラマの思考はプライマリなプログラミング言語に左右されるし、言語が異なれば考え方も異なってくる。俗に言う「BASICっぽいCのコード」や「COBOLっぽいJavaのコード」という現象は、プライマリな言語(ここではBASICやCOBOL)のメンタルモデルに引き摺られることによって発生する。別の言語を学ぶ時に苦労するのは、既存のメンタルモデルとの不整合で悩む為。*1:ここでの「メンタルモデル」の意味は、多分ユーザインタフェースについての議論の文脈におけるメンタルモデルの意味に近い。*2:但しプログラマごとにレベル差あり。*3:但し厳密にはプログラマの世代や所属するコミュニティの影響も少なくはない。世代間の差異は、例えばSTLより前の「クラス指向的なオブジェクト指向プログラミング」のC++世代とSTL及びBoost以降のC++世代の違いがそれだろう。コミュニティについては、例えばUnix文化を母体とするオープンソース・プロジェクトでのCプログラマとマイコンやITRONを出発点とする日本の組込み業界のCプログラマの違いだろうか(両者のコードは随分と異なる)。月別アーカイブはてなブログをはじめよう!eel3さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。