5 ms·
Okay, I'll bite. ML did not mostly die, it morphed into two main dialects, SML and OCaml. OCaml is still going strong, and it's debatable whether SML is mostly
by jasperry 1y ago
Okay, I'll bite. ML did not mostly die, it morphed into two main dialects, SML and OCaml. OCaml is still going strong, and it's debatable whether SML is mostly dead.
My main beef, however, is that the last sentence in the section seems to suggest that the birth of Haskell killed SML on the vine because suddenly everybody only wanted pure, lazy FP. That's just wrong. The reality is that these two branches of Functional Programming (strict/impure and lazy/pure) have continued to evolve together to the present day.
- dboreham 1y agoIsn't F# ML-influenced?
- bgr-co 1y agoF# used to be OCaml.NET AFAIK
- kqr 1y agoNot quite. They explicitly drew a lot of inspiration from OCaml, but they never intended it to be an OCaml compiler for .NET. F# was – from the start – a functional language designed specifically for the .NET Framework Common Language Runtime. Whenever OCaml and CLR diverged in how they did things, they went the CLR route. (See e.g. https://entropicthoughts.com/dotnet-on-non-windows-platforms-brief-historic-summary https://entropicthoughts.com/dotnet-on-non-windows-platforms... for more information, or the Don Syme history of F#.)
- tialaramex 1y agoI have a colleague who is very good with C# and F#. We use a lot of C# for work, and for him F# is just a hobby (he has a math background). Because Rust is basically an ML dressed up to look like a semicolon language, and I know I grokked Rust almost immediately with an academic background in SML/NJ and decades of experience writing C, my guess is that this colleague would pick up Rust very easily, but I can't confirm that. Every Xmas when people are picking up new languages for Advent of Code (which like me he does most years) I wonder if he'll pick Rust and go "Oh, that's nice" - I was going to write a relatively contemporary spoiler here but instead let's say - it's like watching a Outer Wilds player staring at the starting night sky for their fifth or hundredth time wondering if they're about to say "Oh! Why is that different each time?". No. Maybe next time?
- FrustratedMonky 1y agoSo he didn't immediately take to Rust? What was his feedback? I like F# and have also wanted to dive into Rust.
- tialaramex 1y agoHe's never tried it. Sorry it may not have been clear, I was comparing the experience of knowing he might love Rust (or not) but not knowing if he'll decide to learn it - against the experience of watching unspoiled people playing a discovery game such as Outer Wilds where you know what they don't know yet and so you're excited to watch them discover it. I dunno that's maybe not an experience most people have. If you either enjoy learning new languages or have a purpose for which Rust might be applicable I encourage you to try it. As you're an F# user it won't be as revelatory as it is for someone with say only C as a background, but on the other hand if you have no bare metal experience it might also be a revelation how fast you can go without giving up many of the nice things you're used to. If you're a polyglot you probably won't encounter much that's new to you because Rust never set out to be anything unprecedented, I've heard it described as an "industrialization of known best practice" and it's ten years since Rust 1.0 drew a line in the sand.
- porcoda 1y agoYeah, I saw that and was tempted to say the same thing. Ocaml is alive and well, and SML still is in active use. Ocaml has a relatively broad application space, whereas SML is more or less limited to the world of theorem provers and related tools (e.g., PolyML is used to build things like HOL4, and CakeML is a pretty active project in the verified compilers space that targets SML and is built atop HOL4). SML is likely regarded as irrelevant to industrial programmers (especially those in the communities that frequent HN), but it's still alive. F# is still alive and kicking too, and that's more or less an Ocaml variant.
- doublerabbit 1y agoPascal is alive too with Lazarus and FPC.
- msgodel 1y agoI'd argue Rust is modern ML in many ways, it just uses a c-like syntax. It's really the non-pure Haskell alternative.
- empath75 1y agoRust is really missing higher kinded types, though. You can do a lot of neat haskell tricks with it, but you still can't write functions that are generic over "monads" for example. You have to write a function for lists, a function for options and a function for results, you can't really treat them as the _same thing_, even though they all have similar methods.
- deleted 1y ago[deleted]
- jasperry 1y agoRust semantics owes a lot to ML, but the borrow checker makes programming in Rust very different from other ML-derived languages, which are almost all garbage-collected.