Haskellとは?プログラミング言語を初心者にもわかりやすく解説

Haskellとは

Haskell(ハスケル)は、1990年に発表された関数型のプログラミング言語です。それまでに乱立していた純粋関数型言語には標準がなかったため、それらを統合したオープンな標準として作成されました。

1987年、オープンな標準作成を目指してアメリカやイギリスの複数のコンピュータ科学者によって委員会が発足します。そして、1990年にHaskellの最初のバージョンが公開されました。その後、何度か改訂されています。

Haskellには使用者を選ぶようなところがあり「万人向けの言語ではない」と言われることがあります。その一方で、信頼性と保守性の高い美しいシステムが構築できることなどから、一部の技術者や研究者からは大変人気があります。

Haskell という名称は、20世紀のアメリカの数学者で論理学者のハスケル・カリー(Haskell Curry)の名前に由来しています。

Haskellの特徴

Haskellには、以下の特徴があります。

  • 関数型のプログラミング言語
  • 必要に応じて手続き型プログラミングも可能
  • 遅延評価が基本(他の多くの言語では先行評価が基本)
  • 柔軟で強力な型システム

Haskell は、関数型のプログラミング言語ですが、必要に応じて手続き型プログラミングも可能です。

Haskell は、遅延評価が基本です。遅延評価とは、 関数の引数の値が必要になるまで計算を行わないということです。他の多くの言語では、先行評価が基本であるのと対照的です。

Haskell は、 柔軟で強力な型システムを持っています。

Haskellはこんな場面で使われている

Haskellを使った有名な事例としては、「Sigma(シグマ)」という名称のFacebookのスパム対策システムが挙げられます。以前には、 Facebookの社内言語を使用していましたが、それをHaskellに置き換えました。

Sigmaは、スパム、フィッシング攻撃、マルウェアへのリンクの投稿などを特定して自動削除するシステムです。1秒当たり100万回を超えるリクエストを処理しているそうです。

Sigma開発者のサイモン・マーロウ氏によれば「一般的には、このような大規模なシステムではHaskellは採用しませんが、 GHC(Haskellコンパイラー)にいくつかの改善を加えて上流にフィードバックしたことで良いパフォーマンスを達成することができた 」 とのことです。

Haskellを選ぶ理由としては、以下の理由などを挙げています。

  • Haskellの柔軟で強力な型システムが、スパム対策ポリシーを実稼働に移す前に多くのバグを排除するのに役立つ
  • スパム対策ポリシーが改定された際にも、稼働させたままシステム更新するホットスワップが可能

Fighting spam with Haskell ( Haskell でスパムと戦う)

Haskellを学ぶメリット

Haskellは、他の言語に比べて習得しづらいとされることがあります。学ばなければならないことが多く、行儀の良い書き方を強制させられるため、慣れるまでとっつきにくさを感じるかもしれません。

また、学びたいと思った時に、初心者向けの情報が少ないことも、Haskellを学ぶ際の障壁になっているかもしれません。人気の高い言語であれば検索すればすぐに得られるような情報でも、Haskellではあまり出てこないことがあります。

一方で、そうした “Haskellの壁”を超えると、この言語の魅力にはまる人も多いようです。Haskell愛好者にはプログラミングに深く精通した技術者が多く、そうしたマニア層から強く支持される魅力ある言語と言えるでしょう。

いま言語として人気のあるJavaやC#やPHPやRubyではなく、あえてHaskellを選ぶことで、他の技術者との差別化になるかもしれません。Haskellの求人は一定数あります。一度Haskellで募集している職場を求人サイトで検索してみてもよいでしょう。