You can edit almost every page by Creating an account and confirming your email.

ReScript: Difference between revisions

From EverybodyWiki Bios & Wiki
WikiMasterBot2 (talk | contribs)
m automatic correction by IA
WikiMasterBot2 (talk | contribs)
m remove duplicates internal links
 
Line 34: Line 34:
   |publisher = ReScript Association
   |publisher = ReScript Association
   |access-date = 2023-02-24
   |access-date = 2023-02-24
   |via = [[GitHub]]
   |via = GitHub
   }}</ref>
   }}</ref>
|parser: [[MIT License]]<ref name=parser>{{cite web
|parser: [[MIT License]]<ref name=parser>{{cite web
Line 42: Line 42:
   |publisher = ReScript Association
   |publisher = ReScript Association
   |access-date = 2023-02-24
   |access-date = 2023-02-24
   |via = [[GitHub]]
   |via = GitHub
   }}</ref>
   }}</ref>
}}
}}
| file_ext = .res, .resi
| file_ext = .res, .resi
| website = {{URL|{{wikidata|property|eid=Q116885321|P856|P407=Q1860}}}}{{EditAtWikidata|qid=Q116885321|pid=P856}}
| website = {{URL|{{wikidata|property|eid=Q116885321|P856|P407=Q1860}}}}{{EditAtWikidata|qid=Q116885321|pid=P856}}
| influenced by = [[OCaml]], [[Reason (programming language)|Reason]], [[JavaScript]]
| influenced by = OCaml, [[Reason (programming language)|Reason]], [[JavaScript]]
}}
}}


'''ReScript''' (formerly BuckleScript) is a general-purpose programming language that [[source-to-source compiler|transpiles]] to [[JavaScript]] and is mainly used for web development.
'''ReScript''' (formerly BuckleScript) is a general-purpose programming language that [[source-to-source compiler|transpiles]] to JavaScript and is mainly used for web development.


Based on [[OCaml]], the ReScript language supports a [[strong and weak typing|strong]] and [[type system#Static type checking|sound]] [[semantic analysis (computer science)|static]] [[type system]], [[type inference]], [[parametric polymorphism]], [[tail recursion]], [[pattern matching]], first-class [[closure (computer science)|closures]], [[function object#Other meanings|functors (parametric modules)]] and [[exception handling]].<ref>{{cite web |last=Duarte |first=Diel |date=2021-04-27 |df=mdy |url=https://www.dielduarte.dev/blog/en/rescript-from-a-js-dev-point-of-view/ |title=Rescript from a JS dev point of view |department=Blog |website=Diel Duarte |access-date=2023-03-29}}<!-- https://github.com/dielduarte/blog --></ref><ref>{{cite book |isbn=978-1-4842-8887-0 |url=https://link.springer.com/book/10.1007/978-1-4842-8888-7 |title=Introducing ReScript. Functional Programming for Web Applications |first=Danny |last=Yang|year=2023 |doi=10.1007/978-1-4842-8888-7 |s2cid=255208264 }}</ref>
Based on OCaml, the ReScript language supports a [[strong and weak typing|strong]] and [[type system#Static type checking|sound]] [[semantic analysis (computer science)|static]] type system, [[type inference]], [[parametric polymorphism]], [[tail recursion]], [[pattern matching]], first-class [[closure (computer science)|closures]], [[function object#Other meanings|functors (parametric modules)]] and [[exception handling]].<ref>{{cite web |last=Duarte |first=Diel |date=2021-04-27 |df=mdy |url=https://www.dielduarte.dev/blog/en/rescript-from-a-js-dev-point-of-view/ |title=Rescript from a JS dev point of view |department=Blog |website=Diel Duarte |access-date=2023-03-29}}<!-- https://github.com/dielduarte/blog --></ref><ref>{{cite book |isbn=978-1-4842-8887-0 |url=https://link.springer.com/book/10.1007/978-1-4842-8888-7 |title=Introducing ReScript. Functional Programming for Web Applications |first=Danny |last=Yang|year=2023 |doi=10.1007/978-1-4842-8888-7 |s2cid=255208264 }}</ref>


ReScript provides first-class bindings for [[React (web framework)|React]] based web applications,<ref>{{cite web |url=https://rescript-lang.org/docs/react/latest/introduction |title=Introduction |department=React Docs |website=ReScript Project |access-date=2023-05-12}}</ref> and [[React Native]] desktop applications.<ref>{{cite web |url=https://rescript-lang.org/docs/react/latest/introduction |title=ReScript React Native |website=ReScript React Native |access-date=2023-05-12}}</ref>
ReScript provides first-class bindings for [[React (web framework)|React]] based web applications,<ref>{{cite web |url=https://rescript-lang.org/docs/react/latest/introduction |title=Introduction |department=React Docs |website=ReScript Project |access-date=2023-05-12}}</ref> and [[React Native]] desktop applications.<ref>{{cite web |url=https://rescript-lang.org/docs/react/latest/introduction |title=ReScript React Native |website=ReScript React Native |access-date=2023-05-12}}</ref>


== History ==
== History ==
ReScript originally started in 2015 as BuckleScript, an OCaml to JavaScript transpiler created by Hongbo Zhang<ref name="credits"/> while at [[Bloomberg L.P.|Bloomberg]]. It was released as open source in 2016<ref>{{cite web |url=https://www.bloomberg.com/company/press/open-source-at-bloomberg-introducing-bucklescript/ |title=Open Source at Bloomberg: Introducing BuckleScript |department=Press |website=[[Bloomberg L.P.|Bloomberg LP]] |date=2016-05-12 |df=mdy |access-date=2023-05-12}}</ref> and was subsequently included as a part of the ReasonML toolchain, where it was modified to also compile [[Reason (programming language)|Reason]], another language derived from OCaml, to JavaScript.
ReScript originally started in 2015 as BuckleScript, an OCaml to JavaScript transpiler created by Hongbo Zhang<ref name="credits"/> while at [[Bloomberg L.P.|Bloomberg]]. It was released as open source in 2016<ref>{{cite web |url=https://www.bloomberg.com/company/press/open-source-at-bloomberg-introducing-bucklescript/ |title=Open Source at Bloomberg: Introducing BuckleScript |department=Press |website=Bloomberg LP |date=2016-05-12 |df=mdy |access-date=2023-05-12}}</ref> 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<ref>{{cite web |url=https://rescript-lang.org/blog/bucklescript-is-rebranding |title=BuckleScript & Reason Rebranding |department=Blog |website=ReScript Project |date=2020-08-10 |df=mdy |access-date=2023-05-12}}</ref><ref>{{cite web |last=Akinci |first=Ersin |date=2020-12-31 |df=mdy |url=https://ersin-akinci.medium.com/confused-about-rescript-rescript-reason-reasonml-and-bucklescript-explained-ab4230555230 |title=Confused about ReScript? ReScript, Reason, ReasonML, and BuckleScript explained |department=Ersin Akinci |website=[[Medium (website)|Medium]] |access-date=2023-07-05}}</ref><ref>{{cite web |last=Alzate |first=Jayson |date=2021-01-27 |df=mdy |url=https://medium.com/swlh/learn-rescript-a-safer-way-to-write-javascript-part-1-e0b56d447c44 |title=Learn ReScript — A Safer Way to Write JavaScript— Part 1 |department=The Startup |website=[[Medium (website)|Medium]] |access-date=2023-03-29}}</ref><ref>{{cite web |last=Kozlov |first=Ilya |date=2022-07-12 |df=mdy |url=https://blog.noveogroup.com/2022/07/rescript-fast-simple-fully-typed-javascript-future |title=ReScript: Fast, Simple, Fully Typed JavaScript from the Future |department=Blog |website=Noveo Group |access-date=2023-03-29}}</ref>
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<ref>{{cite web |url=https://rescript-lang.org/blog/bucklescript-is-rebranding |title=BuckleScript & Reason Rebranding |department=Blog |website=ReScript Project |date=2020-08-10 |df=mdy |access-date=2023-05-12}}</ref><ref>{{cite web |last=Akinci |first=Ersin |date=2020-12-31 |df=mdy |url=https://ersin-akinci.medium.com/confused-about-rescript-rescript-reason-reasonml-and-bucklescript-explained-ab4230555230 |title=Confused about ReScript? ReScript, Reason, ReasonML, and BuckleScript explained |department=Ersin Akinci |website=[[Medium (website)|Medium]] |access-date=2023-07-05}}</ref><ref>{{cite web |last=Alzate |first=Jayson |date=2021-01-27 |df=mdy |url=https://medium.com/swlh/learn-rescript-a-safer-way-to-write-javascript-part-1-e0b56d447c44 |title=Learn ReScript — A Safer Way to Write JavaScript— Part 1 |department=The Startup |website=Medium |access-date=2023-03-29}}</ref><ref>{{cite web |last=Kozlov |first=Ilya |date=2022-07-12 |df=mdy |url=https://blog.noveogroup.com/2022/07/rescript-fast-simple-fully-typed-javascript-future |title=ReScript: Fast, Simple, Fully Typed JavaScript from the Future |department=Blog |website=Noveo Group |access-date=2023-03-29}}</ref>


== See also ==
== See also ==
Line 65: Line 65:
* [[Elm (programming language)|Elm]]: a functional language that uses an abstraction called ports to communicate with JavaScript
* [[Elm (programming language)|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
* [[PureScript]]: a strongly-typed, purely-functional programming language that compiles to JavaScript
* [[Reason (programming language)|Reason]]: a functional programming language based on OCaml, which can be compiled to JavaScript using ReScript's compiler
* Reason: a functional programming language based on OCaml, which can be compiled to JavaScript using ReScript's compiler


== References ==
== References ==

Latest revision as of 02:19, 27 August 2026




ReScript
ParadigmMulti-paradigm: functional, imperative, modular, object-oriented
FamilyML
Designed byHongbo Zhang.[1]
DeveloperReScript Association
First appeared2015; 11 years ago (2015)[1]
Implementation languageOCaml
License
Filename extensions.res, .resi
Website{{URL|example.com|optional display text}}
Influenced by
OCaml, Reason, JavaScript

Search ReScript on Amazon.

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.[4][5]

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

History

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[8] 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[9][10][11][12]

See also

  • 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

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

Further reading

External links

  • Lua error in Module:Official_website at line 90: attempt to index field 'wikibase' (a nil value).


This article "ReScript" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:ReScript. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.