案件評判
Elixirを理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

Elixirを理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

最終更新:2021/08/05 投稿:2021/08/03
Elixirを理解する!初心者でも分かる歴史、特徴、基礎知識などを簡単に解説!

Elixirは仮想マシン上で動作し大量の並列処理を安定的に実行できるプログラミング言語です。誕生時期は2012年と新しく次世代のプログラミング言語と注目を集めております。この記事ではElixirを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。

Elixirとは

Elixirとは拡張性と保守性の高いアプリケーションを構築するためにデザインされた動的で関数型のプログラミング言語です。ElixirはErlangの仮想マシン 「BEAM」 上で使用することができます。Rubyに影響を受けた言語であることから文法が分かり易い安いことや大量の並列処理を安定的に実行できることなどで親しまれております。このような特徴を持つことからWebアプリケーション開発で利用されるシーンが増えております。

『Elixirの基本情報』
▼誕生時期
2012年
▼開発者
José Valim
▼種別
・関数型プログラミング言語
▼特徴
①拡張性が高い
②大量の並行処理を安定的に実行できる
③文法が分かり易い

Elixirの公式サイトはこちら>>

Elixirは関数型プログラミング言語

関数型プログラミング言語とは関数の組み合わせによって課題を解決する仕組みで構成されるプログラミング言語の種類です。宣言型プログラミング言語の一種であり、関数は引数の適用から先行式の評価を後続式の適用につなげて終端の評価を導き出す式のツリー構造として定義されます。代表的な関数型プログラミング言語としてR言語、ScaLa、Pythonなどが挙げられます。

関数型プログラミング言語の歴史や種類などの基礎知識を解説している記事はこちら>>

ElixirはRubyに影響を受けた

Rubyとはまつもとゆきひろ氏によって1995年に開発されたオープンソースでオブジェクト指向のプログラミング言語です。日本人プログラマーのよって開発された言語として初めて国際電気標準会議(IEC)で国際規格に認証されました。2018年には米国において最も稼げる言語はRubyと言われるほど国内外問わず世界的にも注目を集めております。Rubyの特徴は記述量が少なく、自由度が高い、そして何より『書くことが楽しい』と多くのプログラマーの方が口を揃えております。RubyはWebアプリケーションの開発に最も向いており代表的な開発事例としてGunosy、食べログ、価格.comなどが挙げられます。

『Ruby基本情報』
▼誕生時期
1995年
▼開発者
まつもとゆきひろ氏(通称: Matz)
▼種別
インタプリタ言語
▼特徴
①記述量が少ない
②自由度が高い
③書くことが楽しい

Rubyのメリットやデメリットなどの基礎知識を解説している記事はこちら>>

Elixirの読み方・名前の由来

Elixirの読み方は『エリクサー』です。名前の由来は調査したところ判明しませんでしたが、エリクサーという言葉は「不老不死」や「万能の霊薬」といった逸話があることからこれらに因んだ意味が込められている可能性があります。

Elixirの誕生と歴史

ElixirはJosé Valim氏によって2012年に開発された関数型のプログラミング言語です。José Valim氏がElixirを開発しようと思ったきっかけは、2011年に並行処理の重要性が高まったことからその課題解決の為に動いたということを語っております。「Elixir1.0」がリリースされたのは2012年9月のことです。その後も順調にバージョンアップを重ねていき2021年3月時点での最新バージョンを「Elixir1.11.4」としております。MATLABの歴史について簡単に以下の年表にまとめておりますのでご覧ください。

年代 内容
2011年 「Elixirプロジェクト開始」
並行処理の重要性が高まったことからその課題解決の為に
2011年
2012年 「Elixir1.0」リリース
2015年 「Elixir1.1.0」リリース
2017年 「Elixir1.5.0」リリース
2020年 「Elixir1.10.0」リリース

Elixirの特徴

Elixirの特徴を見ていきましょう。

拡張性が高い

Elixirは拡張性が高いという特徴があります。Elixirは開発者の生産性向上を実現させる為に言語を特定のドメインに自然に拡張できます。

大量の並行処理を安定的に実行できる

Elixirは大量の並行処理を安定的に実行できるという特徴があります。一般的に並行処理は高い学習コストを要するイメージがありますが、Elixirではそれも不要です。Elixirフレームワーク「Phoenix」を使用すれば逐次処理を書くだけで、軽量プロセスによる並行処理を実現できます。

『並行処理とは』
処理時間の掛かる作業実行中に他の処理にCPUリソースを割り当てて実行する処理

文法が分かり易い

Elixirは文法が分かり易いという特徴があります。Rubyライクなプログラミング言語であることから文法は非常にRubyに近しいです。文法や書式がシンプルに構成されており読みやすく結果記述量も少なくなるという特徴があります。記述量が少ないということは覚えることも少なくて済みます。

Elixirの基本的な文法

Elixirの基本的な文法を見ていきましょう。

変数について

Elixirでは変数の宣言は不要です。変数型も存在しないので、一つの変数に様々なクラスオブジェクトを代入することができます。

変数宣言 不要

データ型の種類

Elixirではデータ型で使用される基本的な種類は以下の通りです。

データ型 概要
数値型 整数および浮動小数点データ
原子 名前が値である定数
ブール ブール値としてtrueとfalseをサポート
バイナリ コンマで区切られた<< >>で囲まれたバイトのシーケンス
リスト 角括弧を使用して値のリストを指定します。 値は任意のタイプにすることができます。
タプル 中括弧を使用してタプルを定義

演算子

Elixirでは演算子で使用される基本的な種類は以下の通りです。

演算子の種類 概要
算術演算子 足し算や引き算を実行する
比較演算子 演算子の左辺と右辺を比較
論理演算子 理論を判定する際に用いる
パイプ演算子 結果を左に取りそれを右側に渡す
集合演算子 和集合、積集合、差集合
ビット演算子 特定のビット フィールドにおける設定、シフト、比較

制御文

Elixirの制御文ではif/else/unless文、case文、do/end文を覚えておく必要があります。

・if/else/unless文
if/else文は複数の式を実行し条件にあった文のみを実行させることができます。
・case文
case文はif文同様に複数の式を実行し条件にあった文のみを実行させることができます。
・do/end文
do/end文ブロックを定義することが出来ます。

Elixirの代表的なフレームワーク

Elixirの代表的なフレームワークを見ていきましょう。

『Elixirフレームワークとは』
ElixirフレームワークとはElixirにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのことです。フレームワークを活用することでプログラミングにおける記述コードを最小限に抑えることが出来ます。

Phoenix Framework

Phoenix FrameworkとはElixirベースのWebアプリケーションフレームワークです。MVCモデルを採用しており、コードと可動部分を減らして、リッチでインタラクティブなWebアプリケーションを構築します。気軽に素早くWebアプリケーションを作成できることから多くのElixirユーザーに愛されております。

『Phoenix Framework 基本情報』
▼開発者
DockYard
▼種別
フレームワーク
▼対応言語
Elixir
▼特徴
・MVCモデル
・Ruby on Rails に似ている
・処理速度が早い

Phoenix Frameworkの公式サイトはこちら>>
Phoenix Frameworkの歴史や特徴などの基礎知識を解説している記事はこちら>>

Antikythera Framework

Antikythera FrameworkとはElixirベースのWebアプリケーションフレームワークです。独自の社内PaaS(Platform as a Service)を構築するため誕生し、2018年4月27日に開発コミュニティ向けに公開されました特徴として「非同期ジョブ実行」「マルチコアを最大限に活用する並列実行」「マルチサービス・マルチテナント」などが挙げられます。

『Antikythera Framework基本情報』
▼開発者
株式会社ACCESS
▼種別
フレームワーク
▼対応言語
Elixir
▼特徴
・非同期ジョブ実行
・マルチコアを最大限に活用する並列実行
・マルチサービス・マルチテナント

まとめ

Elixirを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。Elixirを一言で表すと『拡張性と保守性の高いアプリケーションを構築するためにデザインされた動的で関数型のプログラミング言語』です。特徴として「拡張性が高い」「大量の並行処理を安定的に実行できる」「文法が分かり易い」などが挙げられます。Elixirについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。

案件評判
常駐する会社が、実際どんな会社で、どんな案件が動いているか詳しく知りたい。
これは常駐形態で働く方なら誰もが感じていることだと思います。 常駐の働き方をされている方は是非一度「案件評判」で案件についての評判をチェックしてみてください。