Skip to content

saitonakamura/reason-ocaml-glossary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

ReasonML/OCaml glossary

Greetings, wanderer. Reason and OCaml ecosystem are now growing extremely fast and may want to go aboard this train. But if you're coming from another ecosystem, say .NET of Java or JS (though it would be easier for frontend folks, because Reason ecosystem tries to be webstack-compatible), you may find this esy, dune, bucklescript, jsoo and whole bunch of other stuff pretty confusing. So I dared to cobble up a glossary of terms and tools for you to be in the context.

Need to know

  • Reason and OCaml are interchangeable in a sence that you can convert Reason to OCaml and visa-versa. So if you see OCaml lib that suits your needs, but you're writing Reason - you can use it. Though beware that this lib may not be compatible with web platform. Note that libraries written is Reason tend to be more compatible.

Tools

  • Bucklescript - build system to build javascript from Reason/OCaml. It's simple, you can install it from npm and it produces kinda readable output. Considered as modern way to use Reason stack for frontend development. Packages for bucklescript usually use bs- prefix (e.g. bs-fetch is Reason/OCaml bindings to browsers fetch API)
  • JSOO - Js of OCaml - another OCaml->Js transpiler. Focuses more on producing perfomant code. Read Bucklescript to JSOO comparison for more details
  • Esy - npm-like (more yarn-like actually) package manager for both native and js Reason/OCaml. It can work with both npm and opam repositories.
  • Pesy - ?
  • Opam - default package manager for native Reason/OCaml
  • Dune - build system for native Reason/OCaml
  • Refmt - ?
  • Merlin - library for editor support
  • Odoc - HTML documentation generator for Reason/OCaml

Terms

  • ppx - extensions point for language. E.g. let%bind from ppx_let allows you to not to match on option manually. Kinda like F# builders
  • FFI - foreign function interface, which means a way/ a syntax to use for interoperability with other languages like C or JS. It's not actually specific to Reason/OCaml, but they have a uniform way to declare such ffi.

About

ReasonML and OCaml glossary for beginners

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published