余談ですよ : 純粋関数型言語は一般に普及するか?

ということを考えたのだが、まぁ、「一般」の意味が良く分からないので、解釈がさまざまに分かれることは必須必至だが、まぁ、余談ネタだということで。
ある程度専門的な集合の中で一般的に普及するかというと、もう既に普及しているんじゃないかと思うので、終了。(というか、私のような末端の方でも知っているんだからね)
で、その枠を越えて、マスに普及するかというと、これは難しいような気がする。いや、モナドが難しいとか、高階関数が難しいとか、型推論のエラーが難しいとか、副作用がどうとかそういう話もあるけれど、何よりも、つい最近も罠に落ちて混乱したように、非正格な評価戦略を理解して、計算量を正確に把握することが難しい。
Cleanは、非正格な評価戦略と正格な評価戦略をプログラマの好みで組み合わせることが、比較的容易にできるので、慣れてくるとこの数日行ったような評価戦略の調整をコードの外形をあまり変えないで工夫することができるが、そこで何が行われているかを、Cleanに習熟しない人に理解してもらうのは、なかなか難しいことのように思う。
そもそも、Cleanに触れた始めの頃に、正格性の注釈を見て、それがどういう効果をもつのか、なぜそこに必要なのかが分からなかったし、それを理解しなくてもプログラミングはできるのだということしか分からなかった。今でも、その正格性の注釈があるのとないのとで、どのような影響が起こるのかを正確に見積もることはできる自信がない。
このあたりのところがきれいに整理されて、コンパイラなりIDEなりが、適切に、自動判別したり警告を出したり提案したりするようになれば、随分話は変わってくるかもしれない。