1,541 karma · joined July 16, 2010
- pervasive use of laziness makes space utilization hard to reason about
- Highly complex runtime (mostly due to the need to work around laziness), which makes it harder to trust the correctness of the overall system and to and understand performance
- Significantly more complicated type system, which has its ups and downs. It surely makes the language more complicated to learn in and use in many cases. Benjamin Pierce, no slouch himself, has pointed out that he sometimes has to go read a research paper or two to understand some new library.
- Enforced type-level separation between pure and unpure code, which again, has its ups and downs.
Haskell is a great language. But it surely doesn't dominate OCaml.
And the OCaml community is doing quite well of late, as far as I can tell. There's a lot of new energy in the last few years, with great progress in both the core language and in the surrounding infrastructure.