Elixir とは
- このページの目標
- キーワードの認識を通し、Elixir の特徴の大枠を掴む
所要時間: 5 分程度
レッツゴー公式 => https://elixir-lang.org/
Elixir is a dynamic, functional language designed for building scalable and maintainable applications.
- 動的型付け
- 関数型
- Scalableなアプリケーションを書ける
- Maintainableなアプリケーションを書ける
- José Valimが創始者。Plataformatec 社が中心的にサポートしている
Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
Erlang との 相互運用性; interoperability
- Elixir プログラムは Erlang VM(BEAM)用のバイトコード(.beam ファイル)にコンパイルされ、Erlang VM で実行される
- コンパイルされた beam ファイルは Erlang 由来のものと同等で、同時に組み合わせて実行できる
- Erlang VM ではコードの管理単位は module というが、Elixir プログラムから Erlang の module を呼び出したりすることも可能
- 似たような関係性を持つ言語や VM はほかにもある
- 例) Scala プログラムは JVM 向けにコンパイルされ、Java プログラムと組み合わせて実行できる
その他の言語的特徴
- 文法の見た目は多少 Ruby に似ているが、似ているだけ
- 強力なパターンマッチ構文
- Erlang VM をそのまま使うので、Erlang VM の特長を受け継ぐ
- 軽量プロセス
- メッセージパッシング
- OTP(軽量プロセスの階層構造、クラッシュの局所化、自動復旧機構)
- 分散コンピューティング
- コンパイル時にコード自動生成など、様々な処理を行える環境が整っている(マクロ、metaprogramming)
ツールチェーン
- 言語同梱ツール
mix
- ビルドツール兼タスクランナーiex
- REPLex_unit
- テストライブラリ
- hex.pm - パッケージ管理
ex_doc
- ドキュメント生成ツール- hexdocs.pm - オンラインドキュメント