【アーラン】

Erlang(アーラン) とは?

💡 電話交換機が育てた「止まらない」言語
📌 このページのポイント
Erlang のアクターモデルとスーパーバイザーツリー Supervisor Process A Process B Process C msg msg Let it crash! Process X ✕ クラッシュ Process X' ✓ 自動復旧 軽量プロセスの特徴 • メモリ共有なし(独立) • 数百万プロセス同時実行可能 • メッセージパッシングで通信
Erlang のアクターモデルとスーパーバイザーツリーのイメージ
ひよこ ひよこ

Erlangって古い言語なの?あんまり聞かないけど…

ペンギン先生 ペンギン先生

1986年生まれだから確かに古株だね。でも「止まらないシステム」を作る分野では今でも現役バリバリだよ。WhatsAppが少人数のエンジニアで数億ユーザーを支えられたのもErlangのおかげなんだ

ひよこ ひよこ

99.9999999%の稼働率って、どのくらいすごいの?

ペンギン先生 ペンギン先生

年間でダウンタイムがたった0.03秒、つまり実質ゼロということだよ。エリクソンの電話交換機AXD301で達成された記録で「ナインナイン」って呼ばれているんだ

ひよこ ひよこ

なんでそんなに落ちないの?

ペンギン先生 ペンギン先生

「Let it crash(落ちるなら落とせ)」という哲学がポイントだよ。個々のプロセスが壊れるのを前提にして、スーパーバイザーが自動的に再起動する仕組みになっているんだ。人間が体の細胞を入れ替えながら生き続けるのに似ているね

ひよこ ひよこ

アクターモデルってどういうこと?

ペンギン先生 ペンギン先生

プロセスが独立した「アクター(役者)」として動いて、お互いにメッセージを送り合う仕組みだよ。メモリを共有しないからロックも不要で、何百万ものプロセスを同時に動かせるんだ

ひよこ ひよこ

最近はElixirの方が有名な気がするけど、Erlangも学ぶ意味あるの?

ペンギン先生 ペンギン先生

ElixirはErlangのVM(BEAM)の上で動いているから、根っこは同じなんだよ。Erlangを知っていると障害解析やパフォーマンスチューニングで一歩深く理解できる。RabbitMQやejabberdなどErlang製のミドルウェアを運用するときにも役立つね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Erlang」って出てきたら「止まらないシステムを作るための並行処理言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「Erlang」 = アーラン(人名+電話トラフィック単位の二重の意味)
💬 デンマークの数学者アグナー・アーランの名前と、電話トラフィックの単位「アーラン」の両方にちなんでいるよ。エリクソン社で生まれたから「Ericsson Language」の略という説もあるけど、公式には否定されているんだよ
← 用語集にもどる