Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Using, Understanding, and Unraveling the OCaml Language (inria.fr)
80 points by rabidsnail on Aug 18, 2020 | hide | past | favorite | 11 comments


This is so old, I personally wouldn't read it. If you want to learn Ocaml, probably the best current resource is Real World Ocaml v2: https://dev.realworldocaml.org/. It doesn't have good coverage of the not so real world things or the myriad of syntax extensions (mostly from Jane Street). The main auther is one of the original co-founders of Jane Street as well. The only reason I'm saying this is that the Jane Streets guys steer the direction of the language heavily, and their needs don't necessarily fit mine. Their standard library alternative Core (which RWO uses) is a ton of code, pulling in hundreds of dependencies. This leads to a native compiled hello world binary being over 20mb.


That’s not entirely fair. While it is true that it doesn’t cover the latest and greatest package management tools or libraries, it does have a nice coverage of the core language that is still perfectly valid. It is written for a different target audience than RWO I think - when it was written, most of the people who used Ocaml were PL developers and researchers, so it focuses on the language from that perspective.

I wouldn’t disregard it simply due to its age - that is a bad habit I see all too often (“Old = bad!”). Just to make sure before posting this, I went to some random parts of the book and pasted example code into a utop REPL for the latest Ocaml version and it worked fine. So it’s not like the code has bit rotted. It’s still worth a read if someone is interested in languages. It is not worth reading if you are looking for a tutorial on spinning up some form of web app or server app that uses all the shiny things people are currently excited about.


Do you mean Yaron Minsky? I don't think he was a co-founder of Jane Street. From what he's said publicly I got the impression that he was a hire (who obviously had a huge impact).


I don't think he's a co-founder but he is the one who brought OCaml into that company. Started out as a means to do some quick demos and ended up being their language of choice.


Yeah, it seems your right.


That isn't strictly true of the latest version of Real World Ocaml. Most of the examples in the book use Base instead of Core, which is a lot more lightweight.


Ocaml the language isn't the problem for me, it looks great. The real problem is everything else: the libraries, the build tools, the package manager, etc. I tried to set it all up and after a couple evenings gave up. Also, when I realised that it doesn't support unicode strings I tried to find and install a library and I just couldn't work out how.


If you were inclined to try again, I'd start here: https://dev.realworldocaml.org/install.html for installing the basic compiler and tools: essentially, use your OS package manager to install opam, and then use opam to install everything else. Then work through the rest of the book.

As far as unicode goes, strings in OCaml are just bytes, so it won't mangle any unicode without you telling it to. If you need to process text that uses code points above the ASCII ones, there is camomile, which can be installed easily with opam and has documentation here: http://camomile.sourceforge.net/dochtml/CamomileLibrary.html . I haven't used it but it looks straightforward enough.

Note that sometimes people in forums will complain about an OCaml library not being updated in years. In the OCaml universe, this is normal. Many libraries don't get much churn and continue to work unmodified for years. As long as they've been modified since the switch to immutable strings, and as long as they don't depend on libraries that do churn (Base does a bit, as it's still in development, but they'll stop soon I think) they'll probably work. I use several such.


No, I don't think so, I moved on to other languages. I want to think about problems, not about tools.


https://esy.sh can help with the tooling and package management.

I don't mind writing dune files, but yeah, ocaml tooling is a bit lacking by modern standards...


On Fedora:

  dnf install ocaml ocaml-camomile-devel emacs-tuareg-mode
will get you the compiler, Unicode support and an emacs editing mode. It's similarly easy on Debian. You can also install opam if you want to go that way: https://opam.ocaml.org/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: