Elixir

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

1分で分かる!Elixirとは?

ねぇねぇ、ジャバード先生。プログラミング言語っていろいろあるじゃん?

そうだね。これまでにことりん君にも色々と教えてきたよね。

うん!PHPとかJavaとかPythonとかCとかC++とかRubyとかC#とか…

振り返ってみると、かなりたくさんあるね。それでプログラミング言語がどうしたの??

突然だけど、ジャバード先生は四葉ゲームさんって知ってる??

あぁ、たしかスマートフォンのゲームアプリを開発している会社だよね。リリースしたゲームが軒並みヒットしているってニュースをみたよ。あ、そういえばこの前、四葉ゲームさんのアプリで障害が発生してたよね?

そうそう。大変だったみたい。その四葉ゲームさんなんだけど、この前の大規模障害の件をかなり問題視していて、その対策も兼ねてスマートフォンのアプリ基盤を刷新するらしいんだ。

そうなんだね。思い切った決断だけど、いい判断かもしれないね。

四葉ゲームさんは、ここ数年で爆発的に成長してきたんだ。だから、過去に開発したアプリケーション基盤に度重なる改修を加えながら使ってたみたいなんだ。でも、とうとうここにきて限界に達した…と判断したらしいよ。

あ、それでどのプログラミング言語がおすすめか聞きたいってことかな??

その通り!障害に強くて、たくさんのユーザーの処理を問題なく処理できちゃうプログラミング言語ってないかなぁ??

そうだな…。まだまだ新しいプログラミング言語なんだけど、Elixir (エリクサー)っていうやつはどうかな?

なんかかっこいい名前だね!そのElixirっていうのはどんな特徴を持ったプログラミング言語なの?

Elixirっていうプログラミング言語なんだけど、実はErlang (アーラン)っていう別のプログラミング言語と深い関係があるんだ。

Erlang?

そう。Erlangっていうプログラミング言語は、「リアルタイムな並列処理」「耐障害性」「拡張性」などの特徴を持っていて、かなり長い歴史を持っているんだ。ただ、欠点があってとってもプログラミングしづらいんだよ。

なるほど。それはエンジニアさんが苦労しそうだね。

そうなんだ。それはかなりもったいないよねってことで、立ち上がったのがRuby on RailsのコアメンバーだったJosé Valim氏。彼はErlangをベースにしつつ、Rubyのようなイメージでプログラミングができる言語を開発したんだ。それがElixirってわけだよ。

ErlangをRubyっぽく使えるようにしたのがElixir…ってことだね。

そのとおり。ElixirはErlangの仮想マシン上で動くようになっているんだ。そのおかげで、ElixirからErlangで実装されたプログラムを使うこともできるんだよ。

じゃあさ、ElixirもErlangの特徴をそのまま引き継いでいるってことでOK?

そういうことだよ!ElixirもErlangと同じように並列処理、耐障害性、拡張性などを備えているんだ。実際に大人気スマホゲームでの開発実績もあるから、四葉ゲームさんも検討してみる価値はあるんじゃないかな?

実績があるなら安心できるね!ジャバード先生ありがとう!四葉ゲームさんにも進めてみるよ!

はーい!喜んでくれるといいね!

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

Elixirとは、Erlangというプログラミング言語をベースに開発されており、Rubyライクなプログラミングを可能としています。言語の特徴として、以下のような点が挙げられます。

  • 高い拡張性
  • 優れた耐障害性
  • 並列処理が得意

また、Elixirは、Erlangの仮想マシン上のみで動き、Erlangとも互換性を有している点も特徴の1つです。

Elixirを使うエンジニア

Elixirはサーバーサイドを開発できるプログラミング言語です。そのため、最もElixirを使う可能性が高いのはサーバーサイド(バックエンド)エンジニアです。

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

Elixirを使うエンジニア(または企業)の特徴としては、新しいものを積極的に取り入れたいという思考が強いエンジニアや企業という特徴があります。なお、業界としてはゲームやメッセージングアプリといったリアルタイム処理を求められる業界のほか、金融や証券関連など停止が許されない業界に多く在籍しています。

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

Elixirエンジニアは少ない

Elixirは非常に優れた特徴を持つプログラミング言語ですが、シェアとしてはあまり大きくありません。プログラミング言語が好きであったり、今回の四葉ゲームさんのように、Elixirの特徴を享受したい場合は、有効な選択肢の1つとなりますが、実際の開発シーンではサーバーサイドの言語として、Java、PHP、Rubyあたりが選定されることが多いようです。以上のような理由により、Elixirができるエンジニアはかなり少ないです。

そのため、Elixirで開発しているプロジェクトの求人であっても、Elixirに対するスキルを問わない企業もあるので気を付けるようにしましょう。

求人のポイント

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

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

Elixirの豆知識

Elixirを使った有名な企業・サービス

Elixirで開発された有名なサービスには以下のようなものがあります。

スクウェア・エニックス社&アカツキ社 ロマンシング サガ リ・ユニバース

ロマンシング サガ リ・ユニバースは、スクウェア・エニックスの大ヒットシリーズであるロマンシングサガの新作です。開発はスマートフォンゲーム開発で定評があるアカツキ社が担当しています。ダウンロード数は1,500万以上、最大ピーク時には1分間で100万件以上のリクエストが来るという同ゲームのサーバーサイドは、Elixirで実装されていることで有名です。

WhatsApp社 WhatsApp

WhatsAppは、世界180カ国以上で20億人以上のユーザーを有しています。同アプリがElixirで開発されたことは、Elixirの公式サイトでも触れられています。

Access社 Antikythera Framework

モバイルやIoTに強みを持つAccess社は、ElixirのWebアプリケーションフレームワークであるAntikythera Frameworkをオープンソース化しました。このフレームワークは、同社がこれまで培ってきたElixirに関するノウハウをElixir開発コミュニティに還元するために公開されることとなりました。

Elixir関連のイベント 

Elixir関連のイベントとしては、Erlang & Elixir Festが有名です。このイベントは、 一般社団法人Japan Elixir Associationが主催している国内最大級のElixir関連イベントです。スポンサーにはAccess、アカツキ、DRECOMなど、日本を代表するElixirユーザーが名を連ねています。なお、残念ながらここ数年は開催に至っていないようです。

関連記事

  1. Node.js

  2. MySQL

    MySQL

  3. Heroku

  4. DynamoDB

  5. アジャイル

  6. unity

    Unity