Elixir-logo
みんなElixir最高とか言ってるから試しに。

What's Elixir??

Erlang VMで動く関数型言語。
最近巷て流行ってるので, 試してみることに。

Install

Macは brew でインストール可能。

brew update
brew install elixir

Erlang もコレで一緒に入る様子。

CLI

インタラクティブシェルは iex で実行可能。

iex

Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (1.0.5) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>

とても簡単に試せる。

Feature

Elixir の特徴はザックと以下の感じでしょか。

  • パターンマッチ (バイナリパターンマッチ)
  • Ruby の様なシンタックス
  • Erlang VM 上なので耐障害性が優れている
  • Erlangの関数を呼び出せるため、Erlangのシステムにシームレスに統合できる
  • 関数型言語

Erlang の資産を使える事は何よりも素敵だし, BEAM(ErlanVM)のマイクロプロセスを使えるのは何より強いのかなと。

サービスを落とすことができないネットワーク関連やSaaS等で生きそう。

Erlang は技術も思想も素敵な言語だけれども, 直接Erlangに進むと心折れるエンジニアが大多数なはず。

その上でElixir のアプローチはRuby, Python等のエンジニアにも取っ付き易い言語になっていると思う。

実際に何か作ってみて, その感触を共有できればと思う。

issue causing anxiety

issue と言うより気にしておくべき点というのか。

結局はErlangVM(BEAM)上で動く言語になるので,

Erlangの資産使えて, Rubyみたいに書けるからサイコー!!

みたいに憂かれ上がるのは少し違うのかなと思う。

少なくともProductionで使う場合は, Erlangの事を知らなければいけないと思う。プロセスモデルとか特に。

JVMでそうだったように,

ScalaやClojureを使う時にJVMの事あんまり知りませんじゃ, Productionで使えないのと同じ感触を受ける。

とはいうものの, Ruby風のシンタックスで堅牢性の持ったアプリケーションを構築しやすくなったのはいいコトかなと思う。

Erlangの構文が独特すぎて心折れた人も多いかと思うので, Elixir -> Erlangのパスは非常にありがたい。

etc

どうでも良いが, 個人的にPythonが大好きな為, end の構文に違和感を覚える。。

とはいえ面白い言語なので, バックエンドの技術で使って行ければと思っています。

いずれはErlangに取り組めば。(白目

先ずはPhoenix 辺りで何か作ってみようかと思います。