たぶんとっくに誰かが研究しているだろうし応用もされているだろうと思うのだけど、プログラミング言語によって視覚的または美的な認識のしやすさがいろいろと異なっていることを痛感する。プロはどんなものであっても慣れなければいけないので最終的には関係ないのだろうけど、初心者や素人にとってこの違いはかなり大きいと思う【あんよは上手のおれカネゴン】。もちろん読みやすさに影響する要素は他にもあるけれど、カネゴンはそこまで言及する資格がないので。

たとえば、$や#、&という記号は、ソースにごくわずかにしか登場しない場合には視覚上のアクセントとして効果的だけど、素人目には頻繁に使用されるとかなり汚らしく見えてしまう。ピリオド(.)やかっこ、|などは比較的汚染度は低いような気はするけど、それも程度による。もっと一般化すると、ソースで記号が頻繁に使用されればされるほど読みやすさは落ちるような気がする。コンパイラインタプリタを作る立場からすれば記号の方がユニークになりやすいので都合がいいのはわかるのだけど。
困ってしまうのは、言語を設計するプロは既にそうしたものに慣れてしまっているために、慣れていない人の立場に戻って考えることがたいていの場合非常に困難なこと。いしいひさいちの漫画にあった、王監督が「どうしてあんな球が打てないんだ!」とつぶやくシーンをカネゴンつい連想してしまう。その中でpythonruby、HyperTalkみたいな比較的新しい言語はその辺りを多少配慮してくれているような気がする。pythonのインデントを使うやり方は視覚上とても見やすい。
それ以外に、あんまり簡単そうに見えてしまうとお金になりにくいと思われることも原因だったりしたらどうしよう。生物の進化でも同じようなことが起きているのだけど、複雑なシステムを「がんばって洗練させて簡素なものに落とし込む」のと「複雑なままさらに複雑な方向へ突っ走る」のとでは、たいていの場合後者に進むことになる。複雑なまま突っ走ることで、それについていけない人をふるい落とす役目も果たしているのだろうし【早々落馬のおれカネゴン】。

それと、洗練された簡素なシステムは周りの環境についてかなりの部分を慎重に決め打ちしておかねばならず、設計の段階で手間がかかる上に、将来の思わぬ環境の変化に意外に弱いかもしれない。場当たりの拡張を繰り返した複雑なシステムには結節点が多数あるため、何かことが起こったときにいじる余地がたくさんある。しかも複雑なシステムの方はそれまでがたぴしながら動いていた実績があるため、簡素なシステムの方がいいとわかっていても乗り換えには至らないのだと思う【話の逸れたおれカネゴン】。それにたぶん、洗練された簡素なシステムに乗り換える方がはるかに多くの犠牲を伴う。

というわけで、未来になればなるほど事態は複雑になるしかなくなる。「○○人が悪い」とか「○○主義ひとすじ」みたいに一刀両断して済ませられるすっきりとわかりやすい未来はありえないということに【駄法螺止まらぬおれカネゴン】。うう。