Jump to content

Draft:ReScript

From Wikipedia, the free encyclopedia
  • Comment: Sources 1-4, 7-10 are not independent; sources 5, 11?-12 are blogs. LittlePuppers (talk) 18:44, 15 June 2023 (UTC)
  • Comment: Please provide reliable independent sources WP:RSDaxServer (t · m · c) 09:13, 13 September 2022 (UTC)

ReScript
ParadigmMulti-paradigm: functional, imperative, modular, object-oriented
FamilyML
Designed byHongbo Zhang.[1]
DeveloperReScript Association
First appeared2015; 9 years ago (2015)[1]
Stable release
11.1.0[2] Edit this on Wikidata / April 19, 2024; 55 days ago (April 19, 2024)
Implementation languageOCaml
License
Filename extensions.res, .resi
Websiterescript-lang.org Edit this at Wikidata
Influenced by
OCaml, Reason, JavaScript

ReScript (formerly BuckleScript) is a general-purpose programming language that transpiles to JavaScript and is mainly used for web development.

Based on OCaml, the ReScript language supports a strong and sound static type system, type inference, parametric polymorphism, tail recursion, pattern matching, first-class closures, functors (parametric modules) and exception handling.[5][6]

ReScript provides first-class bindings for React based web applications,[7] and React Native desktop applications.[8]

History[edit]

ReScript originally started in 2015 as BuckleScript, an OCaml to JavaScript transpiler created by Hongbo Zhang[1] while at Bloomberg. It was released as open source in 2016[9] and was subsequently included as a part of the ReasonML toolchain, where it was modified to also compile Reason, another language derived from OCaml, to JavaScript.

In 2020, BuckleScript was rebranded to ReScript as a separate language, dropping support for native code compilation in exchange for more JavaScript-like syntax and better integration with the web ecosystem[10][11][12][13]

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
  • Reason: a functional programming language based on OCaml, which can be compiled to JavaScript using ReScript's compiler

References[edit]

  1. ^ a b c "CREDITS.md". rescript-lang/rescript-compiler. ReScript Association. Retrieved 2023-02-24 – via GitHub.
  2. ^ "Release 11.1.0". April 19, 2024. Retrieved April 25, 2024.
  3. ^ "LICENSE". rescript-lang/rescript-compiler. ReScript Association. Retrieved 2023-02-24 – via GitHub.
  4. ^ "res_syntax/LICENSE". rescript-lang/rescript-compiler. ReScript Association. Retrieved 2023-02-24 – via GitHub.
  5. ^ Duarte, Diel (April 27, 2021). "Rescript from a JS dev point of view". Blog. Diel Duarte. Retrieved 2023-03-29.
  6. ^ Yang, Danny (2023). Introducing ReScript. Functional Programming for Web Applications. doi:10.1007/978-1-4842-8888-7. ISBN 978-1-4842-8887-0. S2CID 255208264.
  7. ^ "Introduction". React Docs. ReScript Project. Retrieved 2023-05-12.
  8. ^ "ReScript React Native". ReScript React Native. Retrieved 2023-05-12.
  9. ^ "Open Source at Bloomberg: Introducing BuckleScript". Press. Bloomberg LP. May 12, 2016. Retrieved 2023-05-12.
  10. ^ "BuckleScript & Reason Rebranding". Blog. ReScript Project. August 10, 2020. Retrieved 2023-05-12.
  11. ^ Akinci, Ersin (December 31, 2020). "Confused about ReScript? ReScript, Reason, ReasonML, and BuckleScript explained". Ersin Akinci. Medium. Retrieved 2023-07-05.
  12. ^ Alzate, Jayson (January 27, 2021). "Learn ReScript — A Safer Way to Write JavaScript— Part 1". The Startup. Medium. Retrieved 2023-03-29.
  13. ^ Kozlov, Ilya (July 12, 2022). "ReScript: Fast, Simple, Fully Typed JavaScript from the Future". Blog. Noveo Group. Retrieved 2023-03-29.

Further reading[edit]

External links[edit]

Category:Cross-platform free software Category:Free compilers and interpreters Category:Source-to-source compilers Category:ML programming language family Category:OCaml programming language family Category:JavaScript programming language family Category:High-level programming languages Category:Functional languages Category:Object-oriented programming languages Category:Pattern matching programming languages Category:Statically typed programming languages Category:Programming languages created in 2015 Category:Software using the LGPL license Category:Software using the MIT license