+++
- Elixirを勉強し始めて5日目
- まだ書いたことすらない
- 諸事象で使う必要が出てきたので自分用メモ
+++
- 2012年生まれ
- José Valim 作
- RoRのコミッタ
- 動的型付け
- 関数型プログラミング言語(本人曰く)
Erlang を Ruby のような構文にしたもの
+++
- プロトコルによる多相性(Clojure由来)
- マクロ(Lisp由来)
- ファーストクラスドキュメント
- Mix や Hex というリッチな言語サポート機能
- 構文が全て式
do ... end
がdo: (...)
の糖衣構文
などなど
+++
Elixir は BEAM(ErlangVM) 上で動作する (Erlang AST に変換されて)
- 1986年生まれ
- Ericsson が自社用言語として開発
- 電話交換制御ソフトウェア
- 並列処理・耐障害性が非常に優れている
- オブジェクトの生成と同じ感覚でプロセスを生成
- 関数型的機能やパターンマッチがある
VM レベルで並行処理をサポートしてるのがすごい
+++
OSのプロセス・スレッドとは違う 独自の抽象化したプロセスやノードというのを持つ.
- プロセス
- アクターモデル
- メモリを共有しない
- めちゃくちゃ軽量(1236バイト?)
- 大量生産
- 壊れたら捨てて起動しなおす +++
- アクターモデル
OSのプロセス・スレッドとは違う 独自の抽象化したプロセスやノードというのを持つ.
- ノード
- VMの抽象化された単位
- 複数のVMを接続するため
- 同じマシン上でもそうでなくても関係ない
+++
- 唯一の日本語書籍
- ver1.2なので少し古い
- 面白い構成
- パターンマッチから始まる
- 制御構文が12/23章
- 並行の仕組みがII部
15章までしか読めてない...
+++
- 1章のタイトル「赤いカプセルをとれ」が7L7Wのオマージュ
- Elixir作者自身が7L7WのErlangから着想を得たらしい
- 一般的な代入がない
- 全てパターンマッチ
3 = x
とか書ける
- プロセス単位でGCを持つ
- すぐ捨てるから Stop The World はない
+++
- PID型とポート型が組込みである
- バイナリ文字列と文字リスト文字列
- Haskellみたい(笑)
- 13章の演習
- VMを抽象化したノード
+++
- 作者が基調講演
- Data, Module, Prosses
- 静的型検査の研究中
- Erlang/OTPの知識は必要になる
+++
- 「Elixir歴が日本一長い」と自負してるらしい
- ファイトリーグのサーバー側がElixir
- 他にもちょこちょこっと使ってたらしい
- モンストは RoR
- この差は??
- ElixirはErlangVM上で動く
- Erlangの欠点の構文はRubyより
- 他にもモダンな機能が盛りだくさん
- ErlangVMが強い
- 超軽量プロセス
- もはや小さいOS
ミドルウェアレベルの通信系好きな人は楽しいかも