マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Elixir

【OSS情報アーカイブ】Elixir

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Elixir」とは

基本情報

概要

Elixir(エリクサー)とは、関数型並列処理環境「Erlang仮想マシン」上で動作するプログラミング言語です。「マルチパラダイム」「関数型」「並列プログラミング」「スケーラビリティ」「耐障害性」「Ruby風」などの特徴があります。

基本説明

Elixirは、並列処理型関数言語「Erlang」のメリットを引き継ぎつつ、「Ruby」風のモダンな文法でコーディングを行えます。「Erlangの並列処理/分散性/耐障害性/高レスポンス」と「Rubyの開発生産性」をあわせ持っています。

経緯

Elixirは「Ruby on Rails」のコアチームメンバーJosé Valim氏により開発されました。

2012年、初期版リリース

主な特徴

「Erlang」ベース

関数型言語「Erlang」は、「リアルタイム並列処理」「高信頼性」「スケーラビリティ」などの特徴で、多くの実績がある言語で、何十年も使われてきています。しかし「構文の癖が強く書きづらい」という弱点がありました。

Elixirは「Erlang」の高い基本性能を維持しつつ、「Ruby」のように書きやすい高生産性を取り込んでいます。また、「Erlang VM」上で動作するため、Erlangの関数をそのまま活用できます。

スケーラビリティ(並列処理)

Elixirコードは、軽量スレッド(プロセス)内で動作します。それぞれ独立してGC(ガーベージコレクション)が行われます。

プロセスはそれぞれ分離しており、メッセージ経由で情報をやりとりします。軽量であるため、1つのマシン内で数十万のプロセスが同時に動作できます。

また、同一ネットワーク内の異なるマシン上にある別のプロセスともやりとりできるため、水平スケーリングも可能です。

対障害性(スーパーバイザー)

Elixirには「スーパーバイザー」という機能が搭載されています。「予定通りに物事がいかなくなった場合、システムの一部をどのように再起動するか」について定義でき、動作が保証されている状態へ戻せます。

関数型

Elixirは不変性を持った関数型プログラミング言語です。関数型プログラミングは、コードを短く/速く/メンテナンスしやすくするためのコーディングスタイルを推奨します。「パターンマッチング」などの機能を利用できます。

コメント

コメントをコードの一部として記述できます。Lisp/Pythonにある機能です。

「メタプログラミング」と「ドメイン固有言語(DSL)」

「メタプログラミング」とは、プログラム内でプログラム自身を変更できる機能です。制御文も式であるため、構文さえ変更できます。テスト/デバッグに便利です。

構文改造により、ビルド定義ファイル/Config ファイルのようなドメイン固有言語(Domain-Specific Language)として使用できます。

拡張性

Elixirは、生産性の向上のために拡張しやすいように設計されています。

開発ツール

Elixirには、開発用ツールセットが用意されています。

ビルドツール「mix」、標準リポジトリ「Hex」、インタラクティブシェル「iex」、単体テストフレームワーク「ExUnit」などがあります。

Webフレームワーク

Elixir用フレームワーク「Phoenix」が人気を集めています。

その他ポイント

・遅延評価と非同期処理
・標準でUTF-8ユニコードを採用
・ポリモーフィズム
・シェアード・ナッシング・アーキテクチャ
・再帰重視
・ガード節
・パイプ

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Erlang」「OCaml」「Go」「Scala」など。

導入事例

Elixirのベースとなっている「Erlang」は、「Ericsson」「GitHub Pages」「Facebook Chat」「Heroku」「Whatsapp」などの分散/耐障害性の高いアプリケーション構築に使用されています。

ライセンス情報

Elixirのライセンスは「Apache License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】 「 心理的安全性 」が無い職場とは?🤐

デジタル寺田の3分用語解説

2025.03.17

【デジタル寺田の3分用語解説】 「 心理的安全性 」が無い職場とは?🤐

「 心理的安全性 」が低い職場とはどのような環境なのか、具体的な特徴を解説します。「質問しづらい雰囲気」「失敗を報告できない隠蔽体質」「発言をためらう風土」など、心理的安全性の欠如がもたらす影響を詳しく紹介し、安全な職場づくりの重要性も解説します。

【デジタル寺田の3分用語解説】 「 ウェルビーイング 」とは?😊

デジタル寺田の3分用語解説

2025.03.10

【デジタル寺田の3分用語解説】 「 ウェルビーイング 」とは?😊

「 ウェルビーイング 」とは、身体的・精神的な健康だけでなく、社会的・経済的にも満たされた状態を指します。企業にとっては、健康経営の推進により生産性向上や離職率低下などのメリットがあります。本記事では、ウェルビーイングが注目される背景や企業の具体的な取り組みについて詳しく解説します。

【デジタル寺田の3分用語解説】 「 AIエージェント 」は、人間の管理職の代わりになるか?🤖

デジタル寺田の3分用語解説

2025.03.11

【デジタル寺田の3分用語解説】 「 AIエージェント 」は、人間の管理職の代わりになるか?🤖

「 AIエージェント 」は営業マネージャーの業務をどこまで代行できるのか?「データ分析」「フィードバック」「自動日程調整」の可能性を探り、未来の管理職のあり方を考察します。AIが進化する中で、人間の役割はどう変わるのか詳しく解説します。