That’s probably not a good question to ask here, as most people here are surely people who persisted and made it (or are on the way there). But I’m still wondering what prevents OCaml from being more widely adopted as a language, and more, what made people who could have benefited from (and contributed to) OCaml give up.
My guess would be these three, in order of importance:
- The compiler errors. Personally I think this is the biggest hurdle to get over with when learning OCaml. I wanted to give up many times due to this and had to spend way too much time understanding how to parse them. Even today, I tend to copy/paste and add spacing here and there so that my eyes can go through them, and I still find them unhelpful to deal with a number of errors.
- The number of resources in haskell, and the lack of good documentation. Most time when I google about concepts or libraries that I run into in OCaml, I don’t find much. And if I find something, it’ll probably be something about Haskell. There gotta be a number of people who take this as an opportunity to switch language and learn Haskell instead.
- The tooling. Compared to cargo/go, the combination of opam and dune is extremely hard to use, doesn’t have good documentation, and feels cumbersome (probably because their responsibilities overlap). It very much feels like I’m dealing with Makefiles most of the time. I think the lack of convention in OCaml land probably stops a number of beginners.
What do you think are the top reasons?