JavaScript勉強会

JavaScriptの学習日記

OCaml風にJavaScriptを書けるReasonML

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

 

f:id:jsstudy:20180902112019p:plain

 

ReasonML - Google 検索

 

reasonml.github.io

 

qiita.com

 

OCamlは、関数型プログラミング言語の1つです。

OCaml - Wikipedia

OCaml(オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。

MLの各要素に加え、オブジェクト指向的要素の追加が特長である。

 

最近、関数型プログラミングの勉強でOCamlの本を読んだのですが、実際に使う機会はあまりなさそうだと思ってました。

 

プログラミングの基礎 (Computer Science Library)

プログラミングの基礎 (Computer Science Library)

 

 

しかし、OCamlはいろんなところで活用されていて、AltJSにも使われていました。

その1つが、ReasonMLというわけです。

 

  • ReasonMLが便利か?
  • 実際に使う機会がありそうか?

 

せっかくOCamlを勉強したから、何かに使ってみたいです。

→ReasonMLとか、ちょうどいい材料?

 

BuckleScript

ReasonMLは、「BuckleScript」を使って動作しているそうです。

BuckleScriptは、OCamlのコードをJavaScriptのコードに変換するOCamlのツール(コンパイラー)とのこと。こちらはFacebookではなく、Bloombergで開発されたツールだそうです。

 

BuckleScript - Google 検索

 

bucklescript.github.io

 

qiita.com

 

ReasonMLやBuckleScriptを使って遊べば、OCamlの練習になりそうです。

 

 

ReasonReact

React(JSフレームワーク)も、ReasonMLに対応してるそうなので、ReasonMLに慣れたら、Webアプリの制作で活用できそうですね?

学習コストが高くて、面倒くさいと困るけど…。どうなんだろ?

 

reasonml.github.io

 

qiita.com

 

文法

文法の好みは人それぞれなので、どういう文法が良いとか、悪いとかは言えないと思います。

ただ ReasonML の文法は、 OCamlJavaScript を足して二で割ったような雰囲気をしています。

(というか、 OCamlJavaScript っぽく書けるようにしたと言いますか……。)

 

OCaml とも JavaScript とも微妙に違うものなので、「新しい文法を覚える」という手間が発生してしまいます。

 

その上、現状の ReasonML はまず OCaml にトランスパイルされて、そこから BuckleScript として JavaScript に変換されるという手順を踏んでいるので、使いこなそうとすると、 BuckleScript ( OCaml )についても知る必要が出てきます。

そういう意味で、学習コストは小さくないように見えました。

 

なるほど…。

想像してたのとは、ちょっと違うかもしれないけど、OCaml風にJSが書けるってことがポイントなんですね?

 

それなら、順番としては、

  1. まず、BuckleScriptを使ってみる。(OCamlでコードを書く)
  2. 次に、ReasonMLを使ってみる(OCaml風のAltJSを書く)
  3. ReasonMLに慣れたら、ReasonReactを使ってみる

という取り組み方がいいのかな?

 

道のりは遠いかんじなので、あまり時間をかけずに、「遊び」程度で触ってみるのが無難かも!?

 

 

React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~

React Native+Expoではじめるスマホアプリ開発 ~JavaScriptによるアプリ構築の実際~