tokyo.ex #5 に参加した

beam-lang.connpass.com

に参加してきた。19:00 に会社を出て 19:20 分に到着。ギリギリ。

細かいことは置いておいて、印象に残った部分を残しておく。

Phoenix について

@ohrdev さんのお話。

Elixir の公開されているライブラリの数は 3000くらい。他の言語 (Go, node など) は 10万 Over。みんな頑張ろう!

Logger

@tuvistavie さんのお話。Logger は Elixir の特徴を活かして作られてるとのこと。その中でも一番面白いと思ったのは、ログレベルでの出力制御の話。

Logger.debugLogger.error は実はマクロ。ログレベルを info にしてコンパイルすると、Logger.debug はなかったことにされバイトコードに出力されない。コスト 0。

セッショントーク

(トークセッション?)

ユースケースについて

Q. 仕事で使える?
A.
  • apiサーバで使ってる. 1台あたり 300req/sec.
  • HTTP, JSON を OTP に置き換えてる
  • チャットで
Q. Elixir の不得意なところ
A.

全員一致。

Q. Phoenix の不得意なところ
A.
  • ライブラリ
Q. Elang の知識は必要か
A.
  • Erlang を知らないとプロダクションで扱うのは怖い。Elixirよりも重要だった。
  • トラブル対応などに必要。Erlangというより OTP が重要
Q. エコシステムについて
A.
  • 少ない。足りないものは自分で作る。
  • mix に publish 機能があるので、公開は簡単。
  • 名前が ex_{GEMの名前} は要注意。
Q. 生産性 (Rails と比べて)
A.
  • ライブラリ豊富だから Rails の方が作るのは早いんだけど、その後パフォーマンスチューニングの日々が続く。逆に Phoenix は作るのは遅いが、その後のメンテナンスコスト低いので、長い目で見るといいことがあるかも。
  • (メンテナンス性には)関数型とかはあまり関係ない。
  • Rails はソースを追うのがきついな (長年の積み重ねで)
    • Phoenix もいづれは。。。?
Q. 言語の移行. 関数型
A.
Q. 言語の移行. 並列処理
A.
  • Elixir は安定している。Go は Segmentation fault を出す.
Q. マクロは必要か?
A.
  • アプリを作る分には不要。ライブラリを作る時に。
  • ソース読む場合に必要。でも書かない。
Q. スクリプティングに向いてる?
A.

Yes => 1名, No => 3名.

私も No 派。

感想

  • OTP 重要
  • ライブラリ不足
  • 使いどころを間違えなければ、プロダクションで導入可能。

生活環境の変化より2年ほど勉強会には参加できてなかった。久々にこういう場に参加できて楽しかった。