3 ms·
ML (later StandardML) is a very nice language which has been around since the 70s. https://en.wikipedia.org/wiki/ML_(programming_language) https://en.wikipedia
by xscott 3y ago
ML (later StandardML) is a very nice language which has been around since the 70s.
https://en.wikipedia.org/wiki/ML_(programming_language) https://en.wikipedia.org/wiki/ML_(programming_language)
Significantly before Haskell, and certainly worth looking at.
I'm not sure why it lost in the popularity wars. Maybe it lost to C/Pascal/C++ because
it had garbage collection and then never regained its footing.
- jerf 3y agoI have never seen a serious case that ML is production-ready, not in the early 2000s and not now. I do not mean this as some sort of major criticism or anything, just as a brute engineering fact. It's not like Haskell has a huge suite of programs I can point at that people use because they are legitimately useful and not because they are Haskell programmers (Pandoc, XMonad, and honestly I'm already coming up a bit dry here), but I can still point to more than I can ML, which is a flat zero.
- xscott 3y agoHeh, that's probably true about being "production-ready", but I think you're conflating quality with popularity, and there are plenty of counterexamples to that. The point was that there have been good staticly typed languages for a pretty long time now. I guess we could debate what "good" means...
- jerf 3y agoNo, I'm not conflating quality with popularity; I am telling you the definition of the term I am using. You are welcome to your own definitions but you need to label them as such. There was no option in the early 2000s of deploying any significant production software in ML. You can see this very easily, let me make a list: C++, C, Java, ML. Which one doesn't belong to the set "production-quality language in 2001"? Anyone who can't answer that is just being deliberately obtuse. Even though Java was jammed into that list more by executive fiat than anything else, it was still in that list. You may like ML a lot, you may have preferred to work in it, but it is very clearly not able to run in the same spaces as C++/C/Java. I used Haskell circa 2012 to build a highly concurrent network server for a game contest. I'm glad it was just a game contest and the biggest stakes were which college student got the grand prize. It crashed under load. Really quite a bit; I was restarting it about every hour, under what would have been a trivial amount of load by any production standard. And it was just Haskell bugs; as Haskell advanced, the exact same code crashed less and less. Probably it would be fine today. But this is the sort of thing I mean; even if you like the language, production shines a really, really harsh light on a language. Having a theoretically superior concurrency solution didn't make my code not crash the runtime. Having a theoretically superior typing solution still leaves a language needing tested libraries, tested framework, exposure to real world situations. The odds of hitting a critical snag is just too high otherwise. Even today, telling me that you're building a critical system in ML would basically be a firing offense (if you obstinately stuck by it). I'm as open minded about languages as anybody, but I know enough to know with close-enough-for-business-certainty that it's a bad business decision. Should the ML community suddenly revive and fix up the language over the next 5-10 years, I'd happily reconsider, but today? No question. Even Haskell would be a very uphill battle, for many good and sufficient business reasons, but maybe you could just about convince me there's some task you just need it for.
- xscott 3y agoI can't tell if you're spun up or not, but from the tone and choice of words, this doesn't seem like a friendly conversation any more. Take care, and I won't reply any further.