Elixir
知り合いに ElixirをDisってくれと言われた(w
Elixirは ErlangVM上で動く、並列&非同期処理に優れる
パフォーマンスの良いWebサーバと聞いている
実際に使ってないが、仕組みをみるかぎり
コネクションに対し 軽量スレッドを作成し実行。例外出たら軽量スレッドごと落とす
軽量スレッドとはコルーチンとかファイバーとか言う奴で
普通のスレッドに比べ圧倒的にパフォーマンスが良い
言語はRubyに似た構文
つまり
node.jsはパフォーマンスに優れるがJavaScriptは言語的にサーバ開発、大人数開発には向かない
Erlangは言語構文が特殊で使い辛いので構文はRubyぽくした
Rubyは実行速度が遅いしマルチスレッドしか不可能だがErlangVMにすることで改善
エラーは軽量スレッドを落とすので堅牢である
まさにパーフェクト
その他、言語構造が関数型言語で、基本的に副作用が出来ないので
やはり 堅牢だ
この段階で比較対象にできるのは node、PHP、Ruby、Python以外。
C++に比べるとパフォーマンスは悪いがC++にはまともなWebフレームワークが存在しない&学習コストが高いため
一般的には Webサーバとして比較対象にあがらない
Javaはフレームワークによるが基本的に速い。コンパイル言語だし。
速度比較はわからないが node.jsと同等からそれ以上速い
Servletは爆速
大規模開発には向くが、開発効率としては軽量言語に劣る
nodeやPlayより速いという話。まだコンパイラの最適化が弱いので今後さらに速くなるだろう
開発効率はあまり情報ないが、Javaより高そう
Elixirのライバルにふさわしいのはこいつ
私の結論では、流行るかはわからないが
GolangとElixirの2つが webサービス開発言語として
頭ひとつ抜けていると思う
Elixirの弱点といわれると
まず セミコロン無し教で、ruby文法に慣れない人は ヤだなー
いちいちendうつのだるい
でもこれは 慣れるしかないとして
Erlangに使われる cowboyのパフォーマンスが気になるところ。
そこそこ軽量という話はあるが、圧倒的に使用が少ないので
不具合など nginxなどに比べて怖いところがある