ReScriptはJavaScriptにトランスパイルされる高水準プログラミング言語です。[ 3 ]その構文はOCamlの代替構文であるReasonプログラミング言語から派生しています。
ReScriptは、その祖先であるReasonやOCamlと共通の特徴を持っています。静的型付け言語であり、健全な型システムを備え、関数型プログラミングを重視しています。[ 3 ]
しかし、ReScriptの構文はOCamlから離れ、JavaScriptに近づき始めています。たとえば、整数と浮動小数点数には同じ算術演算子を使用します(JavaScriptと同様)[ 4 ]が、OCaml [ 5 ]とReason [ 6 ]は別々の演算子を使用します。
ReScriptはJavaScriptにトランスパイルされるため、JavaScriptのエコシステム全体にアクセスできます。JavaScript関数を呼び出すことも、JavaScriptから関数を呼び出すこともできます。[ 7 ] JSXを含むReactフロントエンドWebライブラリの言語を直接サポートしています。[ 3 ]
ReScript のルーツはBuckleScriptに遡ります。BuckleScript は OCaml を JavaScript にコンパイルするコンパイラで、2016 年にBloomberg LPによって初めてリリースされました[ 8 ] [ 9 ]。同じ年に、JavaScript により近い OCaml の代替構文である Reason プログラミング言語がリリースされました。両方のプロジェクトが JavaScript の影響を受けているため、Reason と BuckleScript はすぐに統合されたツールチェーンになりました。[ 3 ] [ 10 ]
しかし、BuckleScriptチームとReasonチームでは優先順位が異なっていた。ReasonチームはOCamlエコシステムとの互換性を維持することを望んでいたのに対し、BuckleScriptチームはJavaScriptプログラマーに最高の開発者体験を提供するために構文を変更できるようにすることを望んでいた。[ 10 ]
2020 年、BuckleScript は Reason とは異なる新しい構文を導入しました。[ 1 ] 1 か月後、BuckleScript チームはツールチェーンを ReScript にブランド変更し、JavaScript エコシステムのみに焦点を当て、Reason とは異なる独自の言語となることを目指しました。[ 3 ] [ 11 ] ReScript の OCaml コンパイルのサポートは、 2025 年にリリースされたバージョン 12 で終了しました。 [ 12 ] [ 4 ]