Earlier quoted context omitted.
I think that it is better to not forget that expressiveness comes at the cost of a richer world of misbehaving code. If you are used to a world where functions have more than one argument and must be applied to exactly the right number of arguments and nearly never returns another function, starting a curried language suddenly throws you in a situation where many small mistakes like `plus 1` are not caught early anym…
Thanks for the work you’re doing — though it’s mostly too late for me, good to know that people are putting a lot of thought into these questions. The sense I have got from my experience is that OCaml is a great language for people who are slightly less error-prone than I am. My style of coding is to write a lot of slightly dodgy code in one breath, then use the typechecker to tell me all the things I got wrong. Even…
That's exactly the style OCaml excels at.
> OCaml currently seems great for people who are better at getting it mostly-right first time
That's because they got it wrong a lot at first, then learned how to get it right. You've heard of people talking about how they internalized the Rust borrow checker's rules after some time, right? Well, internalizing a typechecker's inference rules works very similarly (faster if you read OP).
> I’ve seen a lot of OCaml code written by people with PhDs and backgrounds in type theory.
That's unfortunate, it's a nearly perfect language for industrial work. Tiny example of how easy it is to hack together useful tools with it: https://dev.to/yawaramin/practical-ocaml-314j#proof-of-conce...