NaviPlus Engineers' Blog

OCamlオンライン講座の勧め

OCamlというプログラミング言語があります。あまりWeb業界では使われてはいませんが、20年以上の歴史のある実用的で高速に動作する静的型付け関数型言語です。

静的型付け言語ですが、OCamlの場合は良く出来た型推論機能が備わっているため、人間が引数や戻り値の型を書く必要はありません。
最近話題となった「将来Rubyに導入すると言われている、Rubyistのいうところのsoft-typingなるもの」ですが、「ガーと鳴くメソッドがあるオブジェクトは何でもアヒル型になる」と型宣言不要の静的型付けの両立、は20年前からOCamlに存在しています。(OCamlのそれは構造的部分型と呼ばれています。詳しくは例えば「数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの”O”について」とかをご覧下さい。また、soft typingは学術的には別の概念を指す単語で、duck typingへの型付けにその用語を使うのは相応しくないようです。)

言語の実用性と信頼性に関しては、例えばOCamlの最も有名なユーザー企業であるJane Streetという高頻度取引を行っている企業のことを考えると良いでしょう。彼らはOCamlを用いて高頻度取引を行っていますが、開発したプログラムにバグがあれば、ものすごい勢いで損失を出すだろうと考えると、まだ会社が存続していることから、高速で実行するプログラムを高速に高信頼性で開発するためにOCamlが適していることがわかるでしょう。

OCamlは、理学部情報科学科の様な情報科学を教える学科であれば、学部教育で学んでいることも多いかと思いますが、それ以外の人々はあまり学ぶ機会が無い言語です。そんなOCamlですが、オンライン講座がつい先日から始まりました(9/26開講)。
Introduction to Functional Programming in OCamlというオンライン講座です。Web上で動くOCaml環境が用意されているので、OCamlを自分のPCにインストールする必要無く、OCamlを学ぶことができます。
講義の動画や資料は残念ながら英語なのですが、英語の非ネイティブ向け講座なので英語は割とゆっくりだし、動画の音声はスローに出来るし、そもそもプログラミング言語の講座なので文字情報だけで十分、とも言えます。毎週の課題をオンライン上で解答すればOKです。

という訳で、この秋、OCamlを学びましょう。

修正(2016/09/28):
OCamlに詳しい方からのご指摘を受けて下記のように補足修正しました。ご指摘どうもありがとうございました。

旧:最近話題となった「将来Rubyに導入すると言われているsoft-typingなるもの」、つまり「ガーと鳴くメソッドがあるオブジェクトは何でもアヒル型になる」と型宣言不要の静的型付けの両立、は20年前からOCamlに存在しています。
新:最近話題となった「将来Rubyに導入すると言われている、Rubyistのいうところのsoft-typingなるもの」ですが、「ガーと鳴くメソッドがあるオブジェクトは何でもアヒル型になる」と型宣言不要の静的型付けの両立、は20年前からOCamlに存在しています。(OCamlのそれは構造的部分型と呼ばれています。詳しくは例えば「数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの”O”について」とかをご覧下さい。また、soft typingは学術的には別の概念を指す単語で、duck typingへの型付けにその用語を使うのは相応しくないようです。)