# My OCaml Journal

**URL:** <https://forum.devtalk.com/t/my-ocaml-journal/9687>\
**Category:** Journals & Book Clubs\
**Tags:** ocaml\
**Created:** [18 May 2021 12:39 UTC](https://forum.devtalk.com/t/my-ocaml-journal/9687 "2021-05-18T12:39:21Z")\
**Posts on this page:** 1\
**Showing post:** 14

<div class="post-metadata">

**Author:** ![yawaramin](https://forum.devtalk.com/user_avatar/forum.devtalk.com/yawaramin/32/2772_2.png) [@yawaramin](https://forum.devtalk.com/u/yawaramin)\
**Post date:** [27 May 2021 15:36 UTC](https://forum.devtalk.com/t/my-ocaml-journal/9687/14 "2021-05-27T15:36:13Z")

</div>

Hi Mafinar, I would recommend my post to get started: [Practical OCaml - DEV Community](https://dev.to/yawaramin/practical-ocaml-314j) . It walks through setting up with a few common libraries.

I don’t actually include Jane Street’s Core/Base because I usually don’t reach for them. That’s one of the, in my opinion, issues with _Real World OCaml:_ it very heavily relies on and presents Core as ‘the alternative standard library that everyone should use’ when in reality it’s a very heavyweight dependency that usually only large applications can justify. It’s also not ported to Windows (same with Jane Street’s Async, which is why I recommend Lwt for concurrency).

I think it’s a good idea to start with the libraries that are shipped with OCaml:

- [core library](https://ocaml.org/releases/4.12/htmlman/core.html) (note, not Jane Street Core), this lists the built-in types and exceptions of the language
- [standard library](https://ocaml.org/releases/4.12/htmlman/stdlib.html) (Stdlib), this provides a lot of functionality, especially in recent OCaml versions. Especially important: List, String, Set, Map, Hashtbl, Printf. Also look into Sys (e.g. `Sys.getenv`) and Filename (file name operations, portable directory separator, etc.)
- [unix library](https://ocaml.org/releases/4.12/htmlman/libunix.html) (Unix system calls), the name is a slight misnomer as it also (mostly) works on Windows.

So that leaves the final note–instead of _Real World OCaml,_ I would actually recommend Cornell’s [_Functional Programming in OCaml_](https://www.cs.cornell.edu/courses/cs3110/2019sp/textbook/), which is based on their lecture notes for their course, with a long history of teaching OCaml (and doesn’t rely on any alternative standard libraries).

By the way, I am enjoying this thread a lot and will be happy to jump in as well if any questions 🙂

---

_[View the full topic](https://forum.devtalk.com/t/my-ocaml-journal/9687)._
