Hacker News new | ask | show | jobs
by oinksoft 3627 days ago
This is a real problem with ML. There's competing tooling from SML/NJ and MLton, not to mention interesting, useful projects like MoscowML or PolyML. So finding reusable libraries and such is a real battle, and you can't escape knowing both MLBasis and CM, as well as SML/NJ extensions and differences in the respective Basis libraries. The underlying "problem" is that MLton is too good to ignore, but takes so long for even small programs that it's impractical for day-to-day, let alone interactive development.

That's what's so exciting about new work on MLton like this: A JIT-ing MLton, for instance, could be an amazing thing. It seems like the community has been coalescing around MLton against all odds, and any improvements to it are a big deal.

SML is nicer syntactically than OCaml, but OCaml brings so much to the table that it's hard to ignore (a simpler compilation model, niceties like named arguments, single development target, good community). Also Paulson's ML For the Working Programmer explains SML's warts well, in a historical context. It goes into great detail of some of the limitations of SML's module type safety and some of the nasty things you need to do to make functors generic and reusable, which really turned me off of the language and explained why Caml and OCaml exist. I still love SML but must concede that it's mostly a teaching language. The Little MLer is wonderful.

3 comments

The Reason team at Facebook (http://facebook.github.io/reason), I myself included, are working on the syntactical aspect & more. Lots of OCaml's pitfalls are low-hanging fruits (imo), and we're actively fixing them.
The module nastiness is supposedly solved with 1ML, but OCamls folks are not standing still. I mean, kacey's effects type system looks like an elegant way to build concurrency features, and I'm glad they're basing OCaml multicore support on that.
What are your thoughts on Ur (with and without /Web)?
There is no such thing as Ur without /Web (and unless things have changed recently the author has no plans for decoupling them anytime soon).

Ur/Web also lacks incremental compilation, rendering it unusable for general purpose real world applications.

Otherwise, as a modern ML that has improved upon existing MLs (Hakell included), it would be great to see it, 1ML, or other modern spin on SML take root in the FP community.