5 ms·
I used OCaml a few years ago and I thought it was an excellent language. Despite being powerful it was really easy to learn. One thing that put me off in the e
by papaf 9y ago
I used OCaml a few years ago and I thought it was an excellent language. Despite being powerful it was really easy to learn.
One thing that put me off in the end was that it didn't support native OS threads (I have the same problem with Racket). Has threading support improved over the years?
- grayrest 9y ago> Has threading support improved over the years? The main push in this area is Multicore OCaml[1]. I don't track OCaml closely enough to know how getting this into the main compiler is going. [1] https://github.com/ocamllabs/ocaml-multicore/wiki https://github.com/ocamllabs/ocaml-multicore/wiki
- StreamBright 9y agoI am not sure what exactly you are missing, isn't this a native OS thread either POSIX or Win32? http://caml.inria.fr/pub/docs/manual-ocaml/libref/Thread.html http://caml.inria.fr/pub/docs/manual-ocaml/libref/Thread.htm...
- papaf 9y agoThe documentation that you linked to is not describing native OS threads. I am sure that the OCaml implementation is good for a lot of applications. However, because I am used to writing multithreaded code using pthread or std::thread, I find the standard OCaml model uncomfortable and limiting. Its mostly a matter of personal taste but this is the reason I stopped using OCaml.
- masoodusmani 9y agoAre you sure Racket doesn't support native threads? I thought it had something called "places" for that.
- papaf 9y agoI did not know about places, but after reading about them [1], I can see that although they are implemented on top of OS threads, it is not a conventional threading model. For instance there is an instance of the Racket VM per place and this makes them heavier than it would be in a standard system programming language language such as C, C++ or Rust. I am not saying it is better or worse -- just different. [1] https://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf https://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf
- seertaak 9y agoI tried it too; after I realized I that every struct had to have unique field names, I gave up. This was too much craziness for me, although I did think the module/functor concepts were very cool.
- ernst_klim 9y ago>I that every struct had to have unique field names Nope, different structs could have fields named the same.