There is... certainly a learning curve. The Haskell community is still tiny. Per capita, it's one of the best language communities out there. It just hasn't had the thousands or millions of person-hours necessary to make everything pretty and intuitive.<p>I generally say that, all else equal, and if I were to use a GC'd language-- obviously, there are projects that mandate C or other low-level languages-- then I would use: Python for a short-term (days) project, Clojure for a medium-term (< 3 months) one, and Haskell for a long-term (> 3 months, or multi-developer) one. You don't find yourself needing static typing if you're doing a small, self-contained, line-of-business task like a script. You start to really want it for multi-developer programs and for infrastructural jobs that'll take months to complete (and, at age 32-- that's ancient in programming years-- the only programming challenges that really interest me are the hard ones where Haskell's type discipline pays off in a major way).<p>Haskell will probably never beat Python in terms of ease-of-use, and (while I would prefer Haskell over other offerings for hard-core machine learning infrastructure) it has a ways to go before it can take over the exploratory data science world (we need data frames, and it's not at all clear what the "right" way to impose type discipline on such beasts is).<p>All of that said, Haskell is <i>way</i> better than it used to be in terms of user experience. It's gone from god-awful (circa mid-2000s) to hard-but-acceptable, and in the context of a longer-term project (i.e. at least 2 months) the uptake is a rounding error and the pain is paid off.<p>Furthermore, I don't think that Haskell's opt-out approach to laziness is more than a cosmetic issue. You can have as much strictness as you want; you just have to ask for it. However, high-performance programming in other languages (e.g. Clojure, Python) is also deeply technical and warty. When you start adding type hints and using Java arrays in your machine learning code, it doesn't look like Clojure anymore. My point in all this is that HPC is technical and rough in all of the major languages, and Haskell's laziness is just a small part of that.