Scribble at 2024-08-13 08:13:06 Last modified: 2024-08-13 08:40:13
ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript. It comes with a lightning fast compiler toolchain that scales to any codebase size.
アマゾンで ReScript というコンパイラの本を安く見つけたので注文した。JavaScrpt としてコンパイルされる言語ということで、JavaScipt からコンパイルされて実行する WebAssembly とも違った実装や実行の方式を採用している面白いツールだ。なぜか Wikipedia にすらエントリーがないというマイナーなツールではあるが、さすがに Apress だけあって妙なツールの本もしっかり出してくる。
それはそうと、ふつう英語で "rescript" と言えば、歴史的な脈絡で言えばローマ教皇に対する質問へ回答した公式文書という意味で「答書」などと訳される宗教用語なのだが、どうも evangelist などを初めとして地味にクリスチャン文化を押し付けてくる連中がいるらしく、あまり political correctness としてはよろしく無いネーミングだ。なお、この ReScript という名前は、旧 Facebook 社で React を開発したジョーダン・ウォークが Reason という OCaml に最適化されたツール・チェインだったものを、JavaScript にコンパイルする機能だけに特化してリブランドしてできたという経緯があるらしい。現在は ReScript Association という団体すらできているらしく、OCaml コミュニティでは一定の開発トレンドを形成しているようだ。
なお、"rescript" を単純に検索してしまうと「詔書」とか「勅語」なんていう翻訳が出てくる。現在は " an official or authoritative order, decree, edict, or announcement" という語義が辞書にも掲載されているから間違いではないが、もともとは元首や宗教的な権威が自らの意志を表す言葉という意味ではないから、歴史的な脈絡にかかわる場合は注意が必要だ。
日本ではまったく話題になっていないわけだが、そもそも「関数型言語」のブームそのものが既にコロナ禍の前から鎮静してしまった感があるため、OCaml に限らず他の関数型言語も殆ど話題にされなくなっていた。科学哲学においても同じことを僕は言っているのだが、「業績」がない限り、どれほどナウいクールな遊び道具を都内のガキがごちゃごちゃと騒いでいようと、結局は仕事の道具としては意味を為さない。いまでも弊社に続々と送られてくる胡散臭い人材派遣の会社が提示する人材紹介のスペックには、やれ React だの Python だのと流行しているツールの名前が並べてあって、それこそ5年くらい前なら Scala だ Haskell だと関数型言語の名前が並んでいたものだった。でも、こういうものは「使える」かどうかが重要なのではなく、業務で採用してきた件数や年数やスキルの向上を認める証拠が重要なのだ。こんなものをオライリーの本で眺めたていどで「使える」なんていうガキも派遣やクラウド・ワーカーには無数にいるわけだし、何の目安にもならない。そして、「使用歴:5年」と書かれていても、その間に仕事で2回ていどしか書いていないなんて経歴では素人と同じである。もちろん、数学とコンピュータ・サイエンスとシステム開発のコア・コンピタンシーがあったうえで数年ほど使っただけの有能な人材もいるとは思うが、そういう人は、はっきり言って派遣社員やクラウド・ワーカーになってるわけがないのだ。
ということで、僕は「使える」なんて全く思ってもいないし公言もしていないが、Erlang, Scheme, OCaml, そして Haskell の本に目を通したことはある。そして、それらも個々に特徴のあるツールとして何らかの(たとえばプログラミングという思考についても)役には立てたいなとは思う。でも、仕事の道具としてなら、僕のこれまでの経験から言ってもやはり「それだけを使って仕事をする」ような期間が数年は必要だろう。僕は3ヶ月ほどで PHP を習得してから(1日のアクセス数が数十万という、それなりの)公開中のサーバで使うようになったが、それは必要に迫られてのことであり、どちらかと言えば無謀というものだ。