Reason (programming language)

From Wikipedia, the free encyclopedia
ParadigmsMulti-paradigm: functional, imperative, modular, object-oriented
FamilyML: Caml: OCaml
Designed byJordan Walke
First appearedMay 16, 2016; 8 years ago (2016-05-16)[1]
Stable release
3.11.0[2] Edit this on Wikidata / February 25, 2024; 2 months ago (February 25, 2024)
Filename, .rei Edit this at Wikidata
Influenced by
OCaml, JavaScript

Reason, also known as ReasonML, is a general-purpose, high-level, multi-paradigm, functional and object-oriented programming language and syntax extension and toolchain for OCaml created by Jordan Walke, who also created the React framework, at Facebook.[3][4] Reason uses many syntax elements from JavaScript, compiles to native code using OCaml's compiler toolchain, and can compile to JavaScript using the ReScript compiler.[5]

The Reason community officially provides ReasonReact as a solution for React-based web applications.[6]

BuckleScript and ReScript[edit]

Reason was originally compiled to JavaScript using the BuckleScript compiler,[7] which was created at Bloomberg L.P.

In 2020, the BuckleScript and Reason toolchain was rebranded to ReScript, essentially creating a separate language that had different syntax from Reason and only compiled to JavaScript.[8]

BuckleScript was forked to Melange[9] to continue to support compiling OCaml to JavaScript.

See also[edit]

  • Elm – A functional language that uses an abstraction called ports to communicate with JavaScript
  • PureScript – A strongly-typed, purely-functional programming language that compiles to JavaScript


  1. ^ "Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems: facebook/reason". GitHub. Facebook. 2019-03-23. Retrieved 2019-03-23.
  2. ^ "Release 3.11.0". 25 February 2024. Retrieved 25 March 2024.
  3. ^ "What is ReasonML?". 2ality. Retrieved 2019-03-23.
  4. ^ Rauschmayer, Axel (2018). Exploring ReasonML and functional programming. ReasonML Hub. Retrieved 2024-05-14.
  5. ^ "Overview: ReScript Documentation". Retrieved 2020-08-10.
  6. ^ "ReasonReact". GitHub.
  7. ^ "BuckleScript". bloomberg. Retrieved 2022-09-11.
  8. ^ "BuckleScript & Reason Rebranding". rescript-lang. Retrieved 2022-09-11.
  9. ^ "ANN: Melange 1.0 – compile OCaml / ReasonML to JavaScript". OCaml. 2023-06-02. Retrieved 2024-05-24.

External links[edit]