Hacker News new | ask | show | jobs
by dunefox 2133 days ago
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.
3 comments

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/