I remember reading this many years ago. TBH I always felt SML was a nicer language, syntactically -- more readable (mainly because of the let..in..end scoping syntax) -- and I really liked its Basis library; something about the API choices there seemed to be one of the better collections libraries I've ever used. The "object" part of OCaml didn't feel necessary to me.
But OCaml has had more momentum, and I don't know if anybody is even using SML anymore?
Interesting to look back with a bit of history now, too. Choices like having objects/classes and exceptions (instead of result types) added into OCaml were probably seen as modernizing and adding in features that people expected; but now the pendulum seems to have swung against those features. OOP hype has passed -- e.g. Rust and Go don't have 'classes' with inheritance. And exceptions are also lacking in Rust etc, in favour of Option/Result type + pattern matching, so that control flow is more explicit and easier to reason about.
But OCaml has had more momentum, and I don't know if anybody is even using SML anymore?
Interesting to look back with a bit of history now, too. Choices like having objects/classes and exceptions (instead of result types) added into OCaml were probably seen as modernizing and adding in features that people expected; but now the pendulum seems to have swung against those features. OOP hype has passed -- e.g. Rust and Go don't have 'classes' with inheritance. And exceptions are also lacking in Rust etc, in favour of Option/Result type + pattern matching, so that control flow is more explicit and easier to reason about.