I have been looking forward to ML like capabilities on mainstream since using Caml Light.
Regarding those books, while we used the Java version, alongside JavaCC, when time came to actually buy the book, I also got the SML edition.
> have been looking forward to ML like capabilities on mainstream since using Caml Light.
Modern Java is not built around ADTs and pattern matching, these things feel a bit bolted on. SML feels almost like a compiler writing DSL.
I rather have Java, C#, C++, Kotlin, Rust,.... with their imperfections to ML, Smalltalk, and Lisp ideas, than hoping for getting the right languages at the workplace.
Fully agree on the C edition.
Good enough wins. Worse is better rules. Release early... and so on.
I am old enough to remember the full drama behind adding lambda to python, and resistance to bits of functional goodies coming from lisps.
But here we are. Java is an aaaalmost acceptable language!
While scheme, standardml and numerous other perfect little languages are mostly just Wikipedia pages now.
None of that applies to this case, where ML is not only a fair bit older than Java, but abides the principle of "worse is better" far more.
> While scheme, standardml and numerous other perfect little languages are mostly just Wikipedia pages now.
Frankly, I'm thankful I work in an environment with creative autonomy and can choose (and create) my own tools, rather than being forced to work with ones I don't particularly care for because they had a large marketing push.
Sml is a superpolished language, very well-defined formally, being a culmination of years of design effort and uniting a family of academia-born languages. It took 40 years of research to release the final version in 1997.
Java is on the industry side of thing: semi-formalized, numerous omissions when created, a bunch of ad hoc ideas, released in 1995. Not sure it took more than 3-4 years to get the first official version out.
SML is borderline minimalist, it's "worse" because it doesn't try to solve everybody's problems with a bunch of ad hoc language features and a stdlib and formalization larger than the entire legal code of the United States. It's "worse" because it comes with "less". You can't just import solution and start writing AbstractFactoryManager2 garbage. It's not actually worse to anybody but beancounters.
But... I feel that this will not matter all that much soon
"How we prevent conflicts in authoritative DNS configuration using formal verification"