6 ms·
Coming from Scala I'd like to see successor ML become a reality. Whether it's 1ML, Ponyo, Ur (without the /Web), or another ML derivative that's not OCaml (pett
by virtualwhys 10y ago
Coming from Scala I'd like to see successor ML become a reality. Whether it's 1ML, Ponyo, Ur (without the /Web), or another ML derivative that's not OCaml (petty, but the crufty syntax makes Scala seem elegant in this regard) isn't all that important.
As it stands every year Rossberg publishes a paper on latest 1ML enhancements; Harper does the same wrt to PLT, and by proxy SML. Meanwhile, nothing's really happening AFAICT in terms of the ML torch really being taken up and carried forward (beyond OCaml and Haskell).
Perhaps a charitable donation from an SV unicorn founder or two, corporate backing of some form, or academic backing similar to EPFL for Scala could really get the ball rolling.
Moving forward we've got OCaml and upcoming modular implicits; Haskell and the new module system, Backpack; and Scala's transition to Dotty -- basically a lot to look forward to, but would love to see SML in the mix, such a beautiful language...
- cwyers 10y agoI find it interesting that you list all of the ML derivatives except the popular one.
- hroman 10y agoPoly/ML?
- cwyers 10y agoNo. I mean, I know Tiobe isn't great, but the only ML-derivative I see on the top 50 is F#. ML and OCaml crack the top 100.
- groovy2shoes 10y agoF# is an OCaml derivative. I'd reckon that OP's feelings about F# would be rather similar to their feelings about OCaml.
- cwyers 10y agoThe only objection to OCaml is "the crufty syntax," which I think F# has taken steps to improve upon.
- sixbrx 10y agoBut F# didn't bring along the beautiful module system from the MLs, nor does it have type classes. Polymorphism there is basically just the OO + generics variety found in C#. That can rub some people (like me) the wrong way.
- ZenoArrow 10y agoF# does have type classes, they're just called interfaces. https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/interfaces-%5Bfsharp%5D https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual...
- lkitching 10y agoType classes are quite different from interfaces. How would you encode the Eq typeclass in F#? .Net has the IEqualityComparer<T> interface but you need to manually pass that around (unlike Eq instances) and you also lose the global uniqueness property.
- ZenoArrow 10y agoYou don't have to rely on the built in interfaces provided by .NET, you can create your own. Just like in Haskell in F# you can use pattern matching against types to define which of the equality operators to use. Also, I'm not sure what you mean by "manually pass that around". When you define a class in Haskell that inherits from a typeclass you reference that typeclass in the header of the new class. You follow the same approach in F# with interfaces.
- lkitching 10y ago
- jonsterling 10y agoF# doesn't even have modules. Not really in the SML spirit—it's like if you combined Classic/LCF ML from the 1970s with C#.
- ZenoArrow 10y agoIn the context of ML, what are modules and why are they useful?
- groovy2shoes 10y agoPoly/ML isn't an SML derivative, per se. It's an implementation of Standard ML (and a damn fine one at that).
- andrzejsz 10y agoMaybe its not that popular but I would mention ATS programming language http://www.ats-lang.org http://www.ats-lang.org
- jfb 10y agoDon't be silly; nobody uses Windows.
- deleted 10y ago[deleted]
- owyn 10y agoWhat about Facebook's Reason? It's an alternate syntax for OCaml that hooks into the existing OCaml compiler toolchain. https://facebook.github.io/reason/ https://facebook.github.io/reason/ Looks like they've used it to build all kinds of stuff (including the Hack/PHP compiler).