OCaml風にJavaScriptを書けるReasonML
FacebookがOCaml風にJavaScriptを書ける「ReasonML」というAltJSを作っていました。

OCamlは、関数型プログラミング言語の1つです。
OCaml(オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。
MLの各要素に加え、オブジェクト指向的要素の追加が特長である。
最近、関数型プログラミングの勉強でOCamlの本を読んだのですが、実際に使う機会はあまりなさそうだと思ってました。

プログラミングの基礎 (Computer Science Library)
- 作者: 浅井健一
- 出版社/メーカー: サイエンス社
- 発売日: 2007/03/01
- メディア: 単行本
- 購入: 17人 クリック: 409回
- この商品を含むブログ (127件) を見る
しかし、OCamlはいろんなところで活用されていて、AltJSにも使われていました。
その1つが、ReasonMLというわけです。
- ReasonMLが便利か?
- 実際に使う機会がありそうか?
せっかくOCamlを勉強したから、何かに使ってみたいです。
→ReasonMLとか、ちょうどいい材料?
BuckleScript
ReasonMLは、「BuckleScript」を使って動作しているそうです。
BuckleScriptは、OCamlのコードをJavaScriptのコードに変換するOCamlのツール(コンパイラー)とのこと。こちらはFacebookではなく、Bloombergで開発されたツールだそうです。
ReasonMLやBuckleScriptを使って遊べば、OCamlの練習になりそうです。
- OCamlで書いたコードが、JavaScriptになったらどうなるのか?
- OCamlのコードをWebブラウザー上で動作させてみる。
ReasonReact
React(JSフレームワーク)も、ReasonMLに対応してるそうなので、ReasonMLに慣れたら、Webアプリの制作で活用できそうですね?
学習コストが高くて、面倒くさいと困るけど…。どうなんだろ?
文法
文法の好みは人それぞれなので、どういう文法が良いとか、悪いとかは言えないと思います。
ただ ReasonML の文法は、 OCaml と JavaScript を足して二で割ったような雰囲気をしています。
(というか、 OCaml を JavaScript っぽく書けるようにしたと言いますか……。)
OCaml とも JavaScript とも微妙に違うものなので、「新しい文法を覚える」という手間が発生してしまいます。
その上、現状の ReasonML はまず OCaml にトランスパイルされて、そこから BuckleScript として JavaScript に変換されるという手順を踏んでいるので、使いこなそうとすると、 BuckleScript ( OCaml )についても知る必要が出てきます。
そういう意味で、学習コストは小さくないように見えました。
なるほど…。
想像してたのとは、ちょっと違うかもしれないけど、OCaml風にJSが書けるってことがポイントなんですね?
それなら、順番としては、
- まず、BuckleScriptを使ってみる。(OCamlでコードを書く)
- 次に、ReasonMLを使ってみる(OCaml風のAltJSを書く)
- ReasonMLに慣れたら、ReasonReactを使ってみる
という取り組み方がいいのかな?
道のりは遠いかんじなので、あまり時間をかけずに、「遊び」程度で触ってみるのが無難かも!?

React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~
- 作者: 松澤太郎
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/08/29
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る