What are the central principles/values of the OCaml ecosystem?

Inspired by the discussion in Expanding ocaml appeal to future open source application developers, I was thinking about Rust’s success (as a healthy ecosystem not as a popular product), and what is most essential to it.

I posit that the most important thing to learn from Rust is to be found in studying the community’s understanding of, and commitment to, shared values. For insight into this, see RustConf 2020 - Opening Keynote - YouTube (from the linked time forward). Rust’s specific technical and cultural solutions grow out of its commitment to those values. Rather than aping their specific solutions, we’ll be better off if we continue to grow solutions out of the values appropriate to OCaml. IMO, this is already how things tend to evolve in our ecosystem. But I thought it would be interesting to try to make these values and principles more explicit.

So I would like to invite discussion from the community on this question: What are the central principles/values that do (or should) orient and guide the evolution of the OCaml language and the ecosystem that grows around it?

I think it could be fun and illuminating to gather views from any interested parties, whether they be from the core language team, or the most green, and freshly arrived newcomer :slight_smile:

3 Likes

I think an obvious principle (but one that is hard to overstate) is modularity.

The technical aspects of this principle are evident in foundational documents of the language family (e.g., Modules for Standard ML).

But the principle has ecological, cultural, and industrial implications as well, as indicated by Modularity - Wikipedia.

I think this principle has more and less obvious implications for how we structure documentation, libraries, and toolchains.

But I suspect there are also implications for how we structure more cultural aspects of the ecosystem, like governance, community platforms, and networks of support.

1 Like

Stability. Which manifests in multiple dimensions. Error-free programs that keep running and rarely crash, if ever. The ability to compile and run ancient source code. Backwards-compatible tooling: menhir as an almost drop-in replacement for ocamlyacc, Dune’s commitment to supporting prior versions, etc.

4 Likes