Haskell

この記事はHaskellについて解説した記事です。会話形式のやさしい文章で「Haskell」の用語のイメージを紹介した後に、採用に役立つHaskellの知識を解説しています。

1分で分かる!Haskellとは?

ねぇねぇ、ジャバード先生。やっぱり人って裏切る生き物なのかな?

ことりん君どうしたの?大きな闇を感じる質問だね。

「できる!」って言ってたことができなかったり、「これが正しい!」って言ってたことが間違ってたりすると、人に物を頼むのがこわくなるよね。

むむむ…。かなり大きな悩みのようだね。

はぁ…。

あ、でもそれってシステム開発の世界でも同じなんだよ。

え、どういうこと??

システムにも、絶対にできるっていったことはやり遂げる「信頼性が高いシステム」とそこまでキッチリしていない「信頼性が低い(高くない)システム」っていうのがあるんだ。

信頼性が高いシステムってどういうやつ?

まぁいろいろあるんだけど、最近ではHaskell (ハスケル)っていうプログラミング言語が注目されているよ。

ハスケル?初めて聞いたかも…。

たしかにほかのプログラミング言語と比較すると、あまりメジャーとはいえないかもね。

Haskellってどういう言語なの?

Haskellは1990年頃に発表されたプログラミング言語なんだ。まぁまぁ歴史があるよね。

もう30年ちょっとくらい経過しているんだね。どんな特徴があるの?

Haskellは関数型といわれるプログラミング言語に分類されるよ。あとは強力な静的型付けを持つのが特徴だね。

関数型ってどんなの?

一般的なプログラミング言語は処理の流れをそのままプログラミングしていくんだけど、関数型は数学の数式みたいなイメージでプログラミングしていくんだ。

ふ〜ん。なんか難しそうだね。じゃあ静的型付けっていうのは?

プログラミングでは、処理の途中で使う値は「変数」と呼ばれる箱のようなものに格納するんだ。その「箱」の形を厳密に定義するのが静的型付け言語と呼ばれるものだよ。

箱?

そうそう。たとえば「箱」になんでも入るのは便利だけど、何が入っているか分からなくなるよね。だから「この箱には数値しか入れちゃダメだよ」「この箱には文字しか入れないよ」っていうルールをすべて決めていくのは静的型付け言語と呼ばれるものだね。

あぁ、そういうことか。

静的型付け言語は、プログラムをコンパイル(プログラム言語→機械語に変換する作業)するときに、「この箱にこの値は入れることができないよ!」ってチェックしてくれるから、より信頼性が高いアプリケーションが開発できるんだよ。

なるほど!ジャバード先生ありがとう!Haskellって知らなかったけどすごいんだね。ボクはHaskellみたいな信頼性が高い人と友達になることにするよ!

(何があったの?ことりん君…)

Haskellとは?採用に役立つ基礎知識

Haskell (ハスケル)とは、純粋関数型プログラミング言語と呼ばれるものの1つです。

プログラミング言語には、さまざまな分類ができます。その分類方法の1つに「手続き型言語」と「関数型言語」というものがあります。

「手続き型」とは、コンピュータに対する命令(処理)を順番にプログラミングしていくという特徴があります。これは、人間の目から見ても非常にわかりやすく、プログラミングしやすいという特徴があります。

手続き型には、JavaRubyPythonPHPといったメジャーなプログラミング言語が名を連ねています。

一方、「関数型言語」とは、コンピュータに対する命令をすべて関数として定義します。やや分かりにくいかもしれませんが、関数型では「入力値が決定すれば、必ず一意な出力値が出力される」という性質を持つ「関数」を組み合わせてプログラミングしていくスタイルであり、数学の数式を書いていくようなイメージとご理解ください。

なお、関数型プログラミング言語には、Haskellをはじめ、Scalaなどがあります。

Haskellを使うエンジニア

Haskellを使うのは、主にサーバーサイド(バックエンド)エンジニアです。

Haskellを使うエンジニアの特徴と在籍業界

Haskellは、信頼性が求められるアプリケーションの開発で採用されるケースが多いです。信頼性とは、あらかじめ定義された条件において、安定的に処理ができることを指します。

そのためHaskellは、結果を誤ることが許されない金融業界、あるいは科学技術や医療といった業界、そしてセキュリティ業界などに在籍していることが多いです。

採用する時に知っておくとよいこと

学習コストが高いHaskell

前述したとおり、Haskellは数学的な思考を求められるプログラミング言語です。Haskellをマスターするためには、少なからず数学の素養が必要となるため、数あるプログラミング言語の中でも、学習コストはかなり高いといえます。

ただし、ややニッチではあるものの、特定の分野では必要なプログラミング言語であること、Haskellエンジニア自体がかなり少ないことを考えると、十分に学ぶ価値があるプログラミング言語といえそうですね。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

Haslellの豆知識

Haskellを採用している企業

ここではHaskellを採用している企業を紹介します。

株式会社HERP

株式会社HERPは、採用プラットフォーム「HERP Hire」やタレント管理プラットフォーム「HERP Nurture」の開発および運用を手掛けています。

同社では、システムの基盤となる部分をHaskellで開発しています。Haskellは、高速性、保守性、さらには拡張性も優れており、さまざまな恩恵を受けているようです。

参考:株式会社HERP

株式会社朝日ネット

株式会社朝日ネットは、インターネット接続サービス「ASAHIネット」やIPv6接続サービス「v6 コネクト」などを運営しています。

同社は、経営管理部が使用する業務システムの開発にHakell、Java、Perlなどを利用しています。

参考:株式会社朝日ネット

Haskell関連のイベント

Haskellに関するイベントとしては、以下のようなものがあります。

Haskell Day

Haskell Dayは、Haskellに関する国内最大級のカンファレンスであり、日本Haskellユーザーグループが主催しています。

このカンファレンスは、初心者から上級者まで幅広く楽しめるコンテンツが用意されており、Haskellに関する最新情報や事例などを学べます。

2021年は新型コロナウイルスの影響により、オンラインイベントとして開催されましたが、250名を超える参加者を記録しています。Haskellに興味がある人は、チェックしておきたいカンファレンスといえます。

参考:Haskell Day

Haskellシンポジウム

Haskellシンポジウムは、Haskellに関するグローバルなカンファレンスであり、毎年開催されています。

このカンファレンスでは、Haskellに関する研究結果や事例紹介に加えて、Haskellを用いた開発に関する様々な議論が行われます。

参考:Haskell 2022

 

関連記事

  1. Marketo

  2. Flutter

  3. CakePHP

  4. REST-API

  5. サーバーサイドエンジニア

  6. RDS