Live data from Hacker News

The Future of Standard ML (2013) [pdf]

cs.cmu.edu

1–10 of 82 posts

Re: The Future of Standard ML (2013) [pdf]

#2
Cutting to the chase: use Haskell or Scala or F# if you need to do some scripting or build a web application that requires lots of different tasks (being a web server, rendering templates, connecting to a database, etc.). Haskell and Scala have great libraries and polymorphism that allows you to express things succinctly. Dunno much about F# except .NET.

Use OCaml if you want easily native binaries, predictable performance and need very little in the way of well-documented, high-quality third-party libraries.

Use Standard ML if you want to learn OCaml/Haskell/F#/Scala. Why? Ultimately it comes down to usability. First off, operators (not named functions) are to programming languages as icon-only buttons are to web pages; they are completely unusable. The only reason Standard ML avoided the plague of the operators is because it's a simpler language that was used less. Second, since it's a simpler language, you get a much cleaner introduction to things like monads and modules. It makes it very simple to jump into more complex languages like Haskell or OCaml or Scala.

I work on Ponyo [0] because I want to allow people (myself) to program at a high-level in Standard ML. Furthermore, I want to promote quality and usability. Basically, every function's type is annotated and we avoid abusing operators. The current state is such that you can parse CLI args, parse/marshal JSON, serve web pages, make http requests, browse file trees, and many other ideas in the works. But the most important part about Ponyo is that it is a large, (hopefully) well-documented project that others can study to learn Standard ML (and Haskell and Scala and OCaml and F#) better.

Scala, Haskell, F#, OCaml have their place and do their jobs well. If you don't know their place or just want to get exposure to the history behind these modern languages, I recommend giving Standard ML a shot. You can get started by reading the /r/sml wiki [1] or joining #sml on Freenode.

[0] https://github.com/eatonphil/ponyo

[1] https://www.reddit.com/r/sml/wiki/index

Re: The Future of Standard ML (2013) [pdf]

#3

Cutting to the chase: use Haskell or Scala or F# if you need to do some scripting or build a web application that requires lots of different tasks (being a web server, rendering templates, connecting to a database, etc.). Haskell and Scala have great libraries and polymorphism that allows you to express things succinctly. Dunno much about F# except .NET. Use OCaml if you want easily native binaries, predictable perfo…

Interesting, thanks. Worth noting that every Cambridge compsci undergrad has to learn SML. I ended up moving onto OCaml and Scala.

Re: The Future of Standard ML (2013) [pdf]

#5
post #3

Cutting to the chase: use Haskell or Scala or F# if you need to do some scripting or build a web application that requires lots of different tasks (being a web server, rendering templates, connecting to a database, etc.). Haskell and Scala have great libraries and polymorphism that allows you to express things succinctly. Dunno much about F# except .NET. Use OCaml if you want easily native binaries, predictable perfo…

Interesting, thanks. Worth noting that every Cambridge compsci undergrad has to learn SML. I ended up moving onto OCaml and Scala.

Same as compsci students at TU Munich, if Prof. Rybalchenko does the intro to functional programming course.

I really enjoyed it and found it much better suited for students than other languages, especially with the book by Gert Smolka.

Re: The Future of Standard ML (2013) [pdf]

#6

Cutting to the chase: use Haskell or Scala or F# if you need to do some scripting or build a web application that requires lots of different tasks (being a web server, rendering templates, connecting to a database, etc.). Haskell and Scala have great libraries and polymorphism that allows you to express things succinctly. Dunno much about F# except .NET. Use OCaml if you want easily native binaries, predictable perfo…

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...

Re: The Future of Standard ML (2013) [pdf]

#7

Cutting to the chase: use Haskell or Scala or F# if you need to do some scripting or build a web application that requires lots of different tasks (being a web server, rendering templates, connecting to a database, etc.). Haskell and Scala have great libraries and polymorphism that allows you to express things succinctly. Dunno much about F# except .NET. Use OCaml if you want easily native binaries, predictable perfo…

Holy cow, poly/ml looks outstanding, threads, sockets, signals, a ffi, a lot of things I've been missing in SML all these years. Is there support for unicode in the string library? How's the generated code performance wise? I will definitely keep an eye on this project.

Re: The Future of Standard ML (2013) [pdf]

#8
post #5
post #3

Earlier quoted context omitted.

Interesting, thanks. Worth noting that every Cambridge compsci undergrad has to learn SML. I ended up moving onto OCaml and Scala.

Same as compsci students at TU Munich, if Prof. Rybalchenko does the intro to functional programming course. I really enjoyed it and found it much better suited for students than other languages, especially with the book by Gert Smolka.

Do you have a link to "that book?"

Re: The Future of Standard ML (2013) [pdf]

#9
> Dependent types are the future

I think so too. Having a solver fill in my program from the proof obligations is way too amazing. I feel like there could be a connection from high-level specification -> implementation either by proof obligation or possibly synthesis via this route.

Plus I like ML/OCaml and would be happy to see more of it in the world.

Re: The Future of Standard ML (2013) [pdf]

#10

Cutting to the chase: use Haskell or Scala or F# if you need to do some scripting or build a web application that requires lots of different tasks (being a web server, rendering templates, connecting to a database, etc.). Haskell and Scala have great libraries and polymorphism that allows you to express things succinctly. Dunno much about F# except .NET. Use OCaml if you want easily native binaries, predictable perfo…

Many icons are well known and work well.

The back, forward, reload buttons are more usable as icons than text.

When not overused, operators are similarly more usable than verbose English names.

Post reply on HN