Modern software development trends

I think there’s far more to OCaml than just ADTs, in particular for teaching/learning.

On the programming in the small side, you should at least also cite the ease of recursion and closure manipulation, the availability of powerful type inference and the often overlooked intuitive model of computation provided by it having a simple operational semantics (Rust is very interesting but has none of these).

But OCaml is almost unique when programming in the large is considered, thanks to abstract types (the module system) and first class modules. I’m always surprised to see that a lot of people almost always ignore the topic of programming in the large when speaking of languages, while I would argue that it’s one of the most important topics (and one that shows that Rust’s zero-cost abstractions are nice, except that they are barely abstractions, as of now in any case).

11 Likes