関数型言語なんて、多くのプログラマにとって猫に小判、豚に真珠ということだ。
コミュニティの文化が独自とか、学習コストが高いとか言われているが、それは本当の理由じゃない。
本当の理由は、オブジェクト指向言語すら使いこなせていないのに、関数型言語なんて必要ないという理由だ。
オブジェクト指向言語を使い倒していれば、同じ概念を関数型言語ではずっと楽に実現できることにすぐに気づく。
逆にオブジェクト指向言語で無理して使っている概念(例えば高階関数など)がないと利点に全く気づけない。
普段余計な一手間を加えてでも、実現したい便利で強力な概念を、そもそも使っていないのでは、関数型言語を書く意味はない。
関数型言語でもオブジェクト指向言語でも、やることは変わらないとずっと思ってきたし、それなのになぜ関数型言語が普及しないのか、ずっと不思議だった。