Re:Evolving the OCaml Programming Language (2025)
by spit2wind on Friday September 05, 2025 @01:09PM
(#45140927)
Interesting. I'm still working my way through Correct+Efficient+Beautiful. My takeaway so far has been that Modules _are_ the "O" part of OCaml. I guess there's something more "traditionally" an object? Does that mean there were modules in Caml (or whatever the predecessor was) and it was decided classes might be a good feature to add?
[ Parent
| on HN ]
Re:Evolving the OCaml Programming Language (2025)
by debugnik on Friday September 05, 2025 @04:06PM
(#45143009)
Yes, the O in OCaml extends the type system with structurally typed objects and a classic OOP class system.
They're conceptually nice, specially the in-place object syntax, but the class syntax feels tacked on and the overall implementation is very naive compared to a proper OOP runtime like CLR/JVM/JS.
I suggest reaching for them only when first-class modules aren't enough (i.e. you need open recursion). Even then you could sometimes get away with polymorphic variant constraints, but that's admittedly harder to read and understand.