"OCaml -- first impressions"

I’ll also give this example of a “situation”: What is the proper way to use different libraries depending on the environment?

Seems like OCaml is in a transition regarding Num being converted into Zarith. Also jsoo has some implementation of Num and basically “no documentation” is available on how to use any of these (or at least you have to go read the docs on an older OCaml release)

When I try to search for Num I arrive here, where the header says it’s “legacy”: https://github.com/ocaml/num
When I go to Zarith, it’s assumed that I know how to use Num. When I go to JSOO, it’s assumed that I know how to use Num. It’s not easy to figure out how all these play together.

The naive reaction to something like this (if I wasn’t already used to dealing with things like this) would be:

  1. OCaml is unstable. Of course I already know that the nature of OCaml allows it to do such transitions without becoming “unstable” at all. But this wasn’t at all obvious to less experienced me. I guess to most people it means “you shouldn’t use this language”.

  2. It’s not easy to figure out how to use Big Ints and rationals at all. Especially to someone who is used to Python’s Decimal which actually “just works” and most of the time you don’t care about the underlying implementation. The README of Num points to a paper from 1992 which explains how things work in the CAML language.

Of course, I managed to do some stuff, but I am still in front of the dilemma of “WTF am I doing here”? I am a bit ashamed to ask on how to use rationals, because I’m questioning my understanding of basic CS concepts :blush:. But after my confession I’ll go forward and just ask in that topic :smiley:

2 Likes