| ReScript | |
|---|---|
| パラダイム | マルチパラダイム:関数型、命令型、モジュール型、オブジェクト指向 |
| 初登場 | 2020年7月1日[ 1 ] ( 2020-07-01 ) |
| 安定版リリース | |
| 実装言語 | OCaml |
| ライセンス | マサチューセッツ工科大学 |
| ファイル名拡張子 | .res、.resi |
| Webサイト | https://rescript-lang.org/ |
| 影響を受けた | |
| OCaml、Reason、JavaScript | |
ReScriptはJavaScriptにトランスパイルする高水準プログラミング言語です。[ 3 ]その構文はOCamlの代替構文であるReasonプログラミング言語から派生しています。
ReScriptは、その祖先であるReasonやOCamlと共通の特徴を持っています。ReScriptは、堅牢な型システムを備えた静的型付け言語であり、関数型プログラミングを重視しています。[ 3 ]
しかし、ReScriptの構文はOCamlからJavaScriptへと進化し始めています。例えば、ReScriptは整数と浮動小数点数に同じ算術演算子を使用します(JavaScriptと同様)[ 4 ] 。一方、OCaml [ 5 ]とReason [ 6 ]は別々の演算子を使用します。
ReScriptはJavaScriptにトランスパイルするため、JavaScriptエコシステム全体にアクセスできます。JavaScript関数を呼び出すことも、JavaScriptからReScriptの関数を呼び出すこともできます。[ 7 ] ReScriptは、 JSXを含むReactフロントエンドWebライブラリを直接サポートしています。[ 3 ]
ReScriptのルーツは、OCamlをJavaScriptにコンパイルするコンパイラであるBuckleScriptに遡ります。BuckleScriptは2016年にBloomberg LPによって初めてリリースされました[ 8 ] [ 9 ]。同年、OCamlの代替構文であり、よりJavaScriptに近い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コンパイルのサポートはバージョン12で終了し、[ 12 ] 2025年にリリースされました。[ 4 ]