LispやSchemeを使う理由としてマクロの強力さや動的な性質といった側面が挙がるけれど、そういう例を出せば出すほどLispやSchemeは小難しくてとっつきにくいというイメージ(しかもその割には期待して使ってみても見返りが得られない)を広げている気がする。でも文法や基本概念の単純さなんかを考えても、とっつきやすい一面も確実に存在しているはず。
実際、Lisp・Schemeをはじめて使ってみてからかなり長い間viのカッコ対応表示機能以外プログラミング支援なし(インデント手動)でプログラムを書いていたし強力な言語機能もほとんど使った記憶はないけれど、それでも他の言語よりも書きやすかった。そうすると、いったいどこに書きやすさを感じたのかという疑問が浮かぶ。
というようなことを『天にひびき』5巻の
この曲の「暗」から「明」へっていう構成や3・4楽章のアタッカからベートーヴェンの5番の様にとにかく盛り上げる形でやってきた訳ですか
のセリフあたりからの場面を読んで思った(このセリフはシベリウスの交響曲第2番についての発言)。
例えばブラームスの交響曲第1番(2、3、4mov.)は口ずさみやすいメロディもあまりなく地味でとっつきにくい曲だけど、ベートーヴェンの運命や第九を参照枠に取るとかなり判りやすくなる。暗から明への構成だとか、運命の第3楽章→第4楽章や第九の第4楽章の回想→主題の流れとブラ1の第4楽章の序奏→主題の流れとか、第1・3楽章に何度も反復して出てくる運命っぽいメロディとか。
つまり思ったのは参照枠があると理解や適応を容易にしてくれるけどその一方で思考の方向を縛り付けてしまう面もあるというよくある話で、普及している手続き型言語への慣れがLisp・Scheme理解の妨げになりうるのと同様に、LispやSchemeといえばマクロだ動的性だというイメージも理解と普及の妨げになっている側面があるんじゃないかと。
それでマクロも動的性もたいして利用していないのにどうしてLispやSchemeをいい言語だと感じたのかを内省しようと思ったのだけどさっぱり思考が進まない。たぶん単純さと理解しやすさに関する何かだったのだろうとは思うけど、何かどうでもいいことのような気がしてきたので、ここまで。