Sylvain Conchon and Jean-Christophe Filliâtre’s introductory textbook, Learn Programming with OCaml, has been released in English via an openly licensed translation funded by The OCaml Software Foundation. Translated by Urmila Nair and published under a CC BY SA 4.0 license, the text is available in PDF and EPUB formats alongside a companion source code repository. The release prompted broader discussions on functional programming pedagogy, the viability of ML-family languages as foundational computer science curricula, and OCaml's structural synergy with LLM-assisted code generation.
Key Points
Authors and Translation: Written by Sylvain Conchon and Jean-Christophe Filliâtre, translated into English by Urmila Nair.
Financial Support and Licensing: Funded by The OCaml Software Foundation and openly licensed under CC BY SA 4.0.
File Formats & Assets: Distributed as a 1.9 MB PDF file and a 2.3 MB EPUB file, accompanied by supplementary source code (code.html).
Errata Management: Public issue tracking and typo reporting are hosted on a GitHub Repository (backtracking/learn-programming-with-ocaml).
Discussion Highlights
Pedagogical Value of ML Languages: Contributors debated the merits of teaching ML-family languages as a first language for computer scientists, praising their clean semantics and rigorous theory, while critics noted the steep initial learning curve and unforgiving compiler errors for absolute novices.
LLM Integration and Type Systems: Multiple participants cited OCaml as an optimal language for AI-assisted programming due to its global type inference, strict Hindley-Milner type system, and rapid compile times (comparable to Go), which constrain generative models from introducing semantic errors.
Alternative Learning Resources: Commenters frequently recommended Cornell University's CS3110 course materials, taught by Michael Clarkson, as a primary complementary resource for learning OCaml.
GUI and Frontend Ecosystem: Users discussed alternative UI frameworks and cross-platform bindings, highlighting Bogue (sanette/bogue), LablGtk for Linux, ocgtk (GTK4 bindings), Camlkit-gui for macOS, and ReScript as a derivative language optimized for React-based web frontends.