6 ms·
Every time I see ML on HN I hope it's about ML the language and I'm sad when it turns out to be Machine Learning instead, haha. It's a shame ML-family of langu
by GreaterFool 11y ago
Every time I see ML on HN I hope it's about ML the language and I'm sad when it turns out to be Machine Learning instead, haha.
It's a shame ML-family of languages isn't very popular. 1ML for instance could be a fantastic modern language but I don't see that happening.
- LukeHoersten 11y agoSame here. ML-family languages are my favorite. Haskell seems to be the most popular though I may be biased considering I consider myself a Haskeller.
- carterschonwald 11y agoI think there's some room for a next Gen language somewhere between the two.
- sdegutis 11y agoBetween OCaml and Haskell, I would definitely pick Haskell. Even if only because I much prefer Haskell's typeclass system to OCaml's modules. That said, I use Clojure and would choose Clojure over either Haskell or OCaml, because of the live code-reload abilities Clojure comes with, which makes it really great for rapid development. And because Clojure emphasizes immutability so much, it's trivial to keep only the state around that you want to keep, and refresh the rest. I don't think I would be nearly as fast without that.
- loup-vaillant 11y agoMy window manager is Xmonad, and restarting it after a configuration change does feel like hot code swapping: since the configuration file is actually Haskell code, it gets recompiled. The Yi editor has similar capabilities. I think hot code swapping has less to do with the language, and more to do with whatever surrounds it.
- sdegutis 11y agoThat makes sense in the context of a window manager, because the processes live outside it, meaning it has very little to no state of its own. But when developing a web app, you have to login to it every time you reload the code, because being signed in is in-memory state.
- damncabbage 11y ago> ... being signed in is in-memory state. Can be in-memory state. Everything beyond toy-sized I've ever worked on has externalised this sort of state to a database of some kind, if only so you can run a second copy for the sake of failover. I don't believe your example is relevant.
- paulddraper 11y agoOr used a signed assertion that is verified with a secret.
- loup-vaillant 11y ago> meaning it has very little to no state of its own That's false. Windows are affected to workspaces. They are sorted in a particular order (set by the user as they move the windows). Each workspace uses a particular layout. One particular window on each workspace last had focus. There's a "current workspace" pointer. That's a bit more than "very little to no state". All of that is preserved upon reload. And I bet my hat all that state was in-memory. Then there is Yi, a text editor. There's no avoiding lots of in-memory state in there. Live code reload in Haskell. It's real.
- adrusi 11y agoWhat is 1ML, I've never heard of it and it's hard to google.
- GreaterFool 11y agoAfter typing 1ml into Google the paper is the first result and the link header sums it up nicely "1ML - core and modules united" :P
- Avshalom 11y agoAh, see ddg give me a lot of people asking yahoo questions about converting things to milliliters. Completely forgot to check Google.
- riscy 11y ago1ML is basically SML with first-class modules. It's very recent research (paper appeared in ICFP 15) so I'm not surprised there isn't much coming up. EDIT: I'd like to add that the video from ICFP is up: https://www.youtube.com/watch?v=42Wn-mXWcms https://www.youtube.com/watch?v=42Wn-mXWcms
- david-given 11y agoIs there a compiler for it yet?
- riscy 11y agoonly a prototype interpreter [1]. this stuff is fresh out of the research lab [1] http://www.mpi-sws.org/~rossberg/1ml/ http://www.mpi-sws.org/~rossberg/1ml/
- david-given 11y agoCan't make it build, unfortunately: ocamlopt -c lib.ml File "lib.ml", line 24, characters 49-58: Error: Unbound value List.mapi TBF, this is probably a good thing; it's not like I have any time...
- mamcx 11y agoF#? I think is doing better than expected. Is the one I'm using now, and is nice.
- nickpeterson 11y agoIt's puzzling to me that it isn't more popular honestly. My main exposure is through F#, but I would be interested in a new dialect or revision to ML, especially if it gained reasonable community support (the size of say, Scala or Clojure).
- saosebastiao 11y agoMy dream language would be 1ML with a co-effect system as described by Tomas Petricek (pretty big in the F# community, but unfortunately his research isn't being incorporated into F#). But yeah, unless some company goes into full sponsorship mode, ML will always be on the niche side.
- riscy 11y agoJane Street is a major user/sponsor of Ocaml.
- saosebastiao 11y agoI would call them a major user, but sponsor not so much. Their investments in the ocaml ecosystem have mostly been self serving...driven by what they need, not what the ocaml community as a whole needs. Contrast this with Sun/Java, Microsoft/DotNET, Google/Go, etc., where development is happening on what developers everywhere are looking for.
- yminsky 11y agoActually, we've funded lots of things that we don't directly use. For example, we funded the development of OPAM, which we don't use internally at all. Moreover, the funding of OCaml Labs was aimed broadly at improving the OCaml ecosystem, rather than just addressing our narrow internal needs. Our work and funding on compiler improvements like Flambda is aimed at things we want, but they're also of broad utility to the users of the language. Merlin is another example of something we've supported that is useful to us internally, but also useful more broadly. This is of course self serving in the sense that we think the OCaml ecosystem is important to our future, and so we want to help it flourish. But it's a relatively enlightened form of self interest...
- saosebastiao 11y agoThat's fair, I wasn't aware that OPAM was funded by JS. It is definitely one of the better package managers that I've worked with too. I'd like to ask you a question, as it isn't every day that yminsky responds to me. If you knew from the beginning that you would end up creating an entire ecosystem (including libraries, package managers, etc) mostly from scratch, would you have chosen SML instead? I know when you joined JS that OCaml was probably the pragmatic choice. But so many ML enthusiasts (myself included) prefer the syntax and semantics of SML and end up using OCaml/F#/Scala because the SML ecosystem is so non-existent.
- sdegutis 11y agoPersonally, I really like the ideas that OCaml brings, but I feel like it comes with too many compromises in consistency of the language. So I have to ask myself: if I'm going to make compromises, which ones would I make? At the end of the day it usually comes down to choosing between a new language, and one that I already know pretty well, and the benefit of using what I already know is pretty strong.