- Joined
- Feb 9, 2013
Ocaml's good stuff.I appreciate and respect the approach Ocaml is taking to trying to establish their language. I think it has the best chance of being adopted out of any of the ML languages.
Someday if I ever stop doing C stuff I'll do some Ocaml stuff to either find a language that is good, or simply learn more about functional patterns.
Facebook lifted Ocaml's compiler internals but added a goofy Javascript-ey syntactical overlay to make ReasonML. There's also F# on the .NET platform.
Ironically, Ocaml's OOP is cringy and annoying and basically no one uses it for anything. Once in awhile you'll encounter it but you'll just want to wrap it away in normal functions. Ocaml ended up just being the popular form of ML that a community sprang up around.
SML inspired a lot of interesting things but it's not really used in production much anymore. Maybe in a few research settings, but that's about it. SML does have this really wild optimizing compiler called MLton, which is neat for number crunching. Here's a performance comparison between MLton and C++, where SML compiled with MLton is actually competitive with C++. Which is amazing considering SML's garbage collected.
I haven't done anything with Haskell myself. Haskell has a reputation for the same cringy community antics that Rust has now, which is unfortunate because I hear it has some interesting concepts. I don't know, I feel like going 100% purely functional, with absolutely no side effects permitted, is going to make things pretty complicated at times, unless you're writing a compiler or language analyzer or something.
In Ocaml, probably 99% of my code is purely functional, but once in awhile you do paint yourself into a corner where having that escape hatch of side effects is a lifesaver.
Finally, there's also Mythryl, which not many people have heard of. Basically some old graybeard unix nerd wanted to create a system-wide replacement for C in Unix (aside from like the kernel or whatever) using SML as the base, with some syntax changes.
I sympathize with his motivations, though I'd just do that stuff in Ocaml. Anyway, he ended up dying of cancer and his project is just an archive now. Shit's sad.