OCaml に再入門( 3 年ぶり 2 回目)

最近、OCaml に再度入門しようとしている。前に触ってみたのは 3 年前くらいだろうか。書籍『プログラミングの基礎』を読み進めながら一部を自分でも書いて動かして、という感じで途中までやっていた。

最後までやらずにやめてしまったのは何故だったか、あまり覚えていないけれど

  • より優先順位の高いプロジェクトがあり、そちらに取り組むことにしたから
  • OCamlPythonJavaScript などと比べると日本語の情報が少なく、敷居が高く感じたから
  • Emacs の中で対話環境を動かして、バッファの内容を即実行させることができたのだが、実行結果が少しずれて表示されてしまい、その直し方がわからず、何だか気持ちが悪いなという思いがつきまとっていたから

という感じだった気がする。まぁ結局のところ、必要に迫られていたわけでもないから、ということだろう。

その後、Go を少し勉強した。仕事で使う小さなツールを 2, 3 個書いて、それらは毎日のように使っているので Go は手を出してよかったと思う。仕事で使うツールを書くなら Go で書くのがよさそうだと思うが、今は仕事で使うツールを書くために週末の自分の時間を使いたいとは思わなくなったので、Go 自体の勉強もストップしている。

しばらく触らないと忘れて、忘れるとまた調べ直すために時間がかかることが億劫に感じられて触らなくなる、という疎遠ループ。

で、しばらくプログラミングとは関係ないことに取り組んでいてそちらはそちらで引き続きやっているのだけど、気分転換も兼ねてまたプログラミングに関する何かを勉強しようかなと思っていた。

そしたら、たまたま読んだ以下の記事で『プログラミング in OCaml』が紹介されていたので OCaml を再び触り始めた次第。

この本は、OCaml を使うつもりがとくにない人でも、独力でプログラミングを学んできたような人であれば、読むといいことがたくさん書いてあると思っています。 具体的には、OCaml というプログラミング言語でのプログラムの書き方だけでなく、どうしてそういう機構になっているのかがいちいち詳しく解説されており、プログラミング言語の理論についても味見できるようになっています。

やはり強静的型付けで、コンパイラがしっかりチェックしてくれる言語の方が、堅牢なプログラムを書きやすいのではないかと思っている。プロじゃないからこそ、言語の機能に頼りたいというか。

学習コストもかかるだろうが、期限がある話ではないので今後の人生を考えると長期的には十分回収できるはず。

というわけで、ゆっくり少しずつでも積み上げていけたらと思うので、調べたことをここにも書いていこうかなと。