What are some small things that I can do in 2021 so that future founders of important open source projects similar to gitea, peertube, and mastodon feel compelled to use ocaml in 2023?
A comprehensive user guide for the modern toolchain. Much of the current documentation is scattered, incomplete, and assumes some implicit knowledge. E.g. after installing opam you are expected to know how to set up a reasonably modern switch, and then which packages to install to get going.
Also would be a lot of help if there was a foolproof guide for Windows, preferably using WSL.
The OCaml Platform is fragmented into many different tools with their own little fiefdoms of documentation. We need something that brings them all together in a cohesive way, otherwise people will keep turning away from the complexity of adopting OCaml.
Sounds like the goal of “Real World OCaml”. The new edition will hopefully cover all of that.
+1 to docs but I’ll also add tooling. If you want to attract developers the experience needs to be top notch, especially with modern tools. I’d say improvements to ocamllsp which is quite good but still has some annoying bugs. Also a good debugger would also go a long way I think.
All the disparate tools are there: opam, dune, ocamllsp, utop, ocamlearlybird, and so on. There’s just no cohesive platform distribution. To use an analogy, you have to go to a bunch of small, independent, or thrift stores to get everything you need. What’s needed is a department store as the front face of OCaml.
The problem is, the definition of “top notch” varies from developer to developer. It is especially dependent on their experience and familiarity with their underlying operating system, from my arguably irrelevant observations.
One small some thing that you can do in 2021 is to write a chapter for OCaml From the Ground Up.
This is also exactly what i do at the moment.
I agree with the approach, but I find myself more motivated to contribute edits or fixes to the rwo book.
If you want to attract developers the experience needs to be top notch, especially with modern tools.
I am unsure on this point. I could see this being true for corporate developers used to jetbrains product line, but open source developers might have lower standards or be happy with well supported vim and emacs development.
I know this is a common trope, I’m just not sure how true it is. The underlying assumption is that Ocaml is a language people want to use and the tools is what’s preventing them. But I rarely see Ocaml come up as even an option in language discussions. Usually it’s “we’re using Python, should we use Go or Rust?”
I think that this is the correct answer to the question posed. It’s clear that language choice is largely driven by inertia, popularity, and fads. Therefore, the best way to get future developers using any language is to increase its visibility and popularity. Participate in social media, discussion forums, users groups, and conferences. Success stories are compelling (“How I solved $PROBLEM”; “Why we moved away from $LANG”).
A more concrete answer to the original question: Write blog posts about issues that you’ve run into and how you resolved them and short tutorials/explainers on specific features/tools/libraries. We need those.
I would add that a unique selling point helps as well. If someone is thinking “we’re using Python, should we use Go or Rust?”, they are making associations like “…should we use Go (for the goroutines / because it’s simple) or Rust (because it’s fast and saner than C++)”.
What’s the single-sentence unique selling point for OCaml that we would like people to associate with it?
- Type-safe and pragmatic?
- Makes code easy to refactor and maintain?
- Catches bugs early?
That wasn’t my starting assumption. My point of view is that OCaml is a language that some people try out from time to time, but then encounter the complexity of the tooling and how to put it all together. And when they encounter this massive barrier they often don’t make it past it.
Of course, you are right that OCaml is often not even in the picture. It is a niche language after all. But I think when people do decide to try it out, the developer experience is very important.