Hacker News new | ask | show | jobs
by kryptiskt 1615 days ago
I would take SML, freshen it up with some conveniences inspired by Haskell and OCaml, and add a mode with region-based memory management only, so it can be used without a GC. This so there is a simple but principled language targeting low-level programming. Rust is nice, but it has so many features and a syntax aimed at C++/Java folks.
3 comments

I'm convinced that in 50 years all "general purpose" programming languages will be some sort of ML derivatives. Just looking at the feature sets they keep adding on to existing languages (like for example C# where the language is slowly but surely becoming F#) and that seems to be the direction everything is heading.

At some point everyone realizes that if you want to do things "generally" then you want an ML. And after that we slowly get the surface area of general languages hardening until we don't really see that many new features popping up all the time. Afterwards all the innovation shifts to niche programming languages and DSLs.

I would give your idea a try. I think it's good.

SuccessorML[1], 1ML[2], etc. are pretty close to this in spirit. I've been trying to keep up with the publications around the future of ML, but academic research moves kinda slowly. I'm hopeful we'll see a new definition of Standard ML this decade. I'd tend to agree SML is a great choice -- SML-1997 is still ahead of many languages that came well after it in both features and usability.

[1] https://github.com/SMLFamily/Successor-ML

[2] https://people.mpi-sws.org/~rossberg/1ml/

I'd love a SML with explicit effects system (and yes, I know we can implement a monad system in SML, but there needs to be ecosystem support or I might as well do the same thing in JavaScript or whatever)