OCaml: a Rust developer's first impressions

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. ocaml

    The core OCaml system: compilers, runtime system, base libraries

    > But .mli files do not help with the "no types in the source code" problém

    It partially helps since it forces you to have types where they matters most: interfaces.

    > And I did not experience any advantage of separate signature files so far,

    100kLoc is already quite big! I'm starting to think I'm an outlier since a lot of people don't see the benefits :)

    For me, it helps because I really don't want to see the implementation when I use an API. If I need to look at the implementation, it means the interface isn't well specified. All I need should be in the interface: types, docs, (abstract) types. And no more.

    Typically, an .ml file will have more than what is exported, types won't be abstract but will have a concrete implementation, and type signatures may be missing. How would it feels like to use list if only https://github.com/ocaml/ocaml/blob/trunk/stdlib/list.ml was available, instead of https://github.com/ocaml/ocaml/blob/trunk/stdlib/list.mli?

    Haskell tells you what is exported from a module, but it only shows you the names. To see the signatures, you need to rely on generated doc.

    Arguably, since OCaml has includes, it suffers from the same problem, your ".mli" may have tons of include and it becomes harder to see what's exported without an external tool

  2. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  3. eioio

    Effects-based direct-style IO for multicore OCaml

    For 5.0+ you might want to look at https://github.com/ocaml-multicore/eio for how effects can make async much more pleasant

  4. book

    V2 of Real World OCaml (by realworldocaml)

    Some of your questions might be answered in this book (free online version): https://dev.realworldocaml.org/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

Did you know that OCaml is
the 41st most popular programming language
based on number of references?