Comment by dlcarrier
3 months ago
Is OCaml an especially comfortable environment to work in?
One of my favorite programs, an ncurses-based RPN calculator called Orpie, is written in OCaml, but I've never messed around with it.
3 months ago
Is OCaml an especially comfortable environment to work in?
One of my favorite programs, an ncurses-based RPN calculator called Orpie, is written in OCaml, but I've never messed around with it.
Well, many of the benefits of Rust, but in a simpler and garbage-collected language. Possibly the best language (alongside Haskell) if you need pattern-matching. Not quite as good if you need lots of libraries or interaction with other languages.
It does have a lively ecosystem in some niches. Formal verification is one of them.
For example, https://opam.ocaml.org/packages/why3 is a little marvel of engineering.
Does Haskell have or-patterns yet? Last I checked OCaml still has the lead in pattern matching power :-)
https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/or_p...
6 replies →
Hey, I've also used and loved Orpie!
I'm not extremely familiar with any of the ML family, but Eric Lippert had a blog series I followed for a while in which he was writing a Z-Machine in OCaml: https://ericlippert.com/2016/02/01/west-of-house/ I followed along but in Rust for a while, though I think he paused the project at some point and I lost steam.
I learned more about Rust (which, IIRC was first implemented in OCaml) than I did about OCaml, but it's always seemed like a nice language.
Lippert started doing that blog series as part of his learning journey when he got hired at Facebook to write OCaml. Just a fun historical fact.
> Is OCaml an especially comfortable environment to work in?
It is one of these small languages that are not completely niche: it is taught and used, you'll be able to do plenty of things, but there is not the community and resources you find in the big ones or even the mid-sized ones
Certain parts are unmatched joy. However, some things, as basic as printing arbitrary data types, are annoying, compared to other langs.
The thing that I really like about it is that the compiler is very, very fast. Especially when you're in the edit-compile-rerun cycle and doing incremental compiles. This gives people a huge productivity boost and keeps them in flow state much more easily.
[dead]