Elixirとは
Elixir(エリクサー)は、2012年にブラジル出身のジョゼ・ヴァリム(José Valim) 氏によって 開発されたプログラミング言語です。Elixirは、Erlangで実装された関数型プログラミング言語であり、Erlangの仮想マシン上で動作します。
Elixirの特徴のひとつは、並行処理をサポートしていることです。Elixir開発者の ジョゼ・ヴァリム氏は、もともとRuby開発者でしたが、並行処理が苦手なRubyに代わる技術を探していました。並行処理が得意な技術を探すうちに Erlangの仮想マシンにたどりつき、Erlangの仮想マシン上で実行できるElixirを開発しました。
Erlangとの違いは、書きやすさにあります。Elixir開発者のジョゼ・ヴァリム 氏はRubyに精通したエンジニアですが、ElixirはRuby風の構文になっていてErlangに比べて書きやすくなっています。大雑把に言えば、Elixirとは“Ruby風に書けるErlang”と言えるかもしれません。
Elixirの最新バージョンは、2019年にリリースされたバージョン1.9系です。 Erlang は、信頼性、拡張性、生産性の高い言語として、近年人気が高まっています。
Elixirの特徴
Elixirには、以下の特徴があります。
- Erlangで実装された言語
- Erlang仮想マシン(BEAM)上で動作する
- 並行処理をサポートしている
- 関数型のプログラミング言語
- 拡張性が高い
Elixir はErlangで実装された言語であり、Erlang仮想マシン(BEAM)上で動作します。Elixirが動作するErlangの仮想マシンとは、BEAM(Bogdan’s Erlang Abstract Machine)と呼ばれているものです。 BEAMは、スウェーデンの通信機器メーカーのエリクソン社が開発したErlang言語のための仮想マシン(VM)です。
Elixirには、Erlangの特徴が引き継がれています。リアルタイム並列処理が得意で、エラーが発生しても並行プロセスによって自動復旧できるので、耐障害性が高くなります。
Elixirは、関数型のプログラミング言語です。関数型プログラミングを採り入れることで、複雑なシステムから曖昧さを排除して明確なプログラムとなります。
Elixirはこんな場面で使われている
Elixirは、並行処理により稼働中のシステムを停止することなくプログラムを修正できます。この特徴は、サービスを止めることなくプログラムを更新するようなシステムに適します。
Erlang は、信頼性、拡張性、生産性の高い言語とされます。障害に強くて落ちない、サービスの規模が大きくなっても対応できる、Rubyライクな構文で書きやすい、ということです。
上記の特徴やウェブとの相性の良さなどから、Elixirは、eコマース(ネット通販・電子商取引)や、金融業界などで利用されることがあります。
Elixirを学ぶメリット
Elixirは、高トラフィックをさばける信頼性高いシステムを安価に構築できる言語として、徐々に人気が高まっています。
Elixirの求人を検索すると、ウェブアプリケーション開発、モバイルアプリ開発、ゲームサービスのサーバサイド運用、などに携わる技術者の募集が確認できます。
Elixirを必須スキルとする求人では、他に経験がある方が望ましいスキルとして、Scalaなどの関数型言語が挙げられています。また、Ruby on Rails、Vue.jsなどのフレームワークの経験が挙げられることが多いようです。