Erlangに関する世界観です。
Erlangはエリクソンによる並列処理言語。Erlangの仮想マシン上で動くElixirと言う言語もあります。
以下にサンプルコードがあります。
また、以下に公式のドキュメントの翻訳があります。
また、OTPとはErlangのシステムを動かすためのライブラリと設計原則を含むミドルウェアのこと。分散データベースや開発・管理ツール、他言語へのインターフェースなどが含まれる。
2026.05.17編集
2026.05.20編集
Erlangは、エリクソンによって電話交換機のシステムのために開発され、「1秒であっても絶対にシステムが停止しない」という設計の下に作られており、VMであるBEAMは以下の特徴がある。
| 特徴 | 説明 |
|---|---|
| 軽量プロセス | スレッドではなく独自の軽量なプロセスを使う。 数百万のプロセスをひとつのサーバーで動かせる。 |
| アクターモデル | プロセスの間でメモリを共有せず、メッセージ通信を使う。 メモリ干渉のバグを防げる。 |
| Let it crash | プロセスがエラーを起こした時、レスキューせずにそれを廃棄する。 ひとつのプロセスを犠牲にしてでも、システム全体を稼働させ続ける。 |
| ホットスワップ | システムを停止することなく更新することが可能。 |
このような特徴の結果、Erlang(やその他のBEAM言語)は極めてスケーラビリティが高く、ダウンしづらい特徴を持っている。エリクソンの電話交換機には、99.9999999%の稼働率という伝説がある。
後日注記:Erlangの軽量プロセスは、OSのスレッドよりもはるかに軽量で、かつ、ほかのプロセスから完全に独立している。エラーが出ても、アプリケーション全体を巻き込むことはほとんどない。だから、エラーを起こさないためのプログラミングではなく、エラーが起きたとしてもそこから回復するためのプログラミングができる。
(なぜGleamは「最も親切な関数型言語」と呼ばれるのか - YouTubeを参考に執筆しました。)
2026.05.20
2026.05.23編集
ElixirはErlangの代替言語。Erlangの高い並列性能をそのままに、Rubyのような記述で並列処理を書ける。
後日注記:ElixirはErlang VM (BEAM)上で動くRubyによく似た言語。
以下にサンプルコードがあります。Rubyと良く似ています。
2023.05.17編集
2026.05.17編集
2026.05.23編集
以下はGoogleのAIが書いたコード。
defmodule MathHelper do
@moduledoc """
数学的なヘルパー関数を提供するモジュールです。
"""
@doc """
数値のリストを受け取り、偶数だけを2倍にした合計を計算します。
"""
def sum_of_doubled_evens(numbers) do
numbers
|> Enum.filter(&Integer.is_even/1)
|> Enum.map(&(&1 * 2))
|> Enum.sum()
end
end
2026.05.20
PhoenixはElixirによる最近大人気のWebフレームワーク。
後日注記:Phoenix LiveViewを使うことで、JavaScriptをほとんど書かなくてもElixirだけでSPAなどフロントエンドとバックエンドの開発ができる。
2023.01.08
2026.05.23編集
Ash FrameworkはElixirによるWebフレームワークのひとつ。
2026.05.23
NxはElixirによる数値計算・機械学習のためのライブラリ。
2026.05.23
Elixir用のツールとして、かつてはlinterのDogmaやフォーマッタのexfmtがあり、Gleamの作者ルイス・ピルフォールドによって開発された。今ではmix formatやcredoが標準的に使われている。
また、以下にElixir関連の新しいライブラリの一覧があります。Hugging Faceと連携し、ElixirでGPTやStable DiffusionなどのAIモデルを用いることのできるBumblebeeが面白そう。
Python AI入門や画像生成AIも参照のこと。
2026.05.20
2026.05.23編集
LivebookはWebブラウザ上でElixirのコードを書いて実行できるライブ開発環境。
2026.05.23
LFE (Lisp Flavored Erlang)はErlang向けのLisp風言語。
2023.05.17
GleamはErlang向けのプログラミング言語で、コンパイラはRustで書かれており、コードの見た目はRustに近いがパイプライン演算子をよく使う。パイプライン演算子とは、関数型言語でよく使われる、hoge(fuga())をfuga |> hogeと書ける記法のこと。またJavaScriptを吐くこともできる。
ErlangやElixirはBEAM上で動く優れた並列処理が行える関数型言語だったが、動的型付け言語だった。Gleamは関数型言語のMLを参考に、「MLの素晴らしい型システムを乗せたい」という作者のルイス・ピルフォールドによって独自に開発された静的型付け言語である。また、関数型言語にありがちな「高度かつ数学的でわけが分からない」言語ではなく、親切かつ習得の易しい関数型言語を目指して開発されている。
2023.05.17
2026.05.20編集
並列処理も参照のこと。