&gt; Even for someone reasonably experienced in functional programming, there are tons of new concepts you need to master to be minimally productive in the language.<p>Mostly agree, but it does depend on how you define minimally productive. I also believe this is more of a pedagogy problem. For instance, someone can tell me what their definition of being minimally productive is in Haskell and if it is within my skills I can get them there pretty quickly.<p>&gt;  Beyond that, it introduces a whole new problem class of space leaks that you need to reason about.<p>I feel like &quot;whole new problem class&quot; is unfair since other languages have memory leaks.<p>Also, there are techniques developing for dealing with space leaks just like other languages have techniques for memory leaks:<p><a href="http:&#x2F;&#x2F;neilmitchell.blogspot.com&#x2F;2015&#x2F;09&#x2F;detecting-space-leaks.html" rel="nofollow">http:&#x2F;&#x2F;neilmitchell.blogspot.com&#x2F;2015&#x2F;09&#x2F;detecting-space-lea...</a><p>&gt; It&#x27;s not a bad language, but it is a much more radical leap from anything else you&#x27;re likely to have tried than Swift is.<p>Perhaps I&#x27;ve drunk the koolaid, but it doesn&#x27;t seem that radical after having learned it.<p>&gt; OCaml is fairly verbose<p>Agreed, it&#x27;s the main thing that has put me off of learning what is probably an awesome language. To be honest I just can&#x27;t get over all the let&#x27;s :&#x2F;<p>I find this a little hypocritical since I found it easy to get over lisps&#x2F;schemes parenthesis.<p>&gt; still doesn&#x27;t have a great parallelism story AFAIK<p>Right, but they are apparently fixing that fairly quickly: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9582980" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9582980</a><p>To be fair that was posted 146 days ago though and I don&#x27;t know what current progress is.<p>&gt; and has a quirky type system (1.5 + 1.5 is a type error)<p>Interesting, that&#x27;s because you need to use .+ right?<p>&gt; and a not-very-well-loved standard library.<p>I&#x27;m always torn on whether or not this is a huge problem. Part of me loves being able to build everything as libraries since anyone can essentially build onto the language. With a good enough package manager this seems ideal. The part of me that wants things to be fast and minimal though craves a great standard library so I can have fewer dependencies and a more &quot;standard&quot; experience. A good standard library also has the advantage of giving you good or good enough options without having to do tons of research on the best libraries for a given task.<p>Haskell for instance can require some knowledge of the library ecosystem to have the best experience. I&#x27;m not sure I&#x27;d say the standard library (or Prelude as we call it) is horrible, but it&#x27;s definitely not as performant as it could be since many (all?) things are based on strings being represented as a linked list. The library solution for this is use Text for anything with unicode or use bytestring for ascii only IIRC.