jtwp470’s blog

日記とかプヨグヤミングとか

ElixirConfに参加してきた

表題の通り,ElixirConfが秋葉原で昨日(4/1)にありました.これは参加記と自分のメモを載せておくための記事です.

www.elixirconf.jp

Opening Keynote

Elixirの作者であるJosé Valimさんのセッションでした.全編英語でしたがものすごく聞き取りやすい英語で5割程度は理解できました. 2011年にElixirという言語を設計したときの悩みや開発の進みなど言語開発者でしか味わうことのないようなお話で非常に興味深いものでした. 後半で述べていましたがこれからElixirにどんな機能を追加していくかというものでUTF-8 Atomが導入されたようです.例でも挙げていたように次のようにテストなどを書くことができるようになります.

test "こんにちは世界" do
    assert :こんにちは世界
end

個人的にはあんまりこのように書きたくはありませんがやはり非英語ネイティブからすると英語ベースではないというのも1つの強みなのでしょうか.

また,質問コーナーで盛り上がった型チェックの導入の検討.よいですね.静的型チェックがデフォルトで入ってくれればIDE等も対応してきてやりやすくなるのではないでしょうか.Pythonでも3.5からType Hintingなどがはいってきたように言語に型情報をつけるの流行ってますね.

Phoenixで作るスケーラブルゲームサーバ

www.slideshare.net

モンストを手がけるmixi社において一部サーバーをElixirで書いているようです.Erlang VMの安定性と軽量プロセスは突発的なアクセスに非常に強く作られているようです.

また,Erlangと違い文法がRubyライクなのが新たなエンジニアの参入障壁を下げているようです.確かにそれは一理ありそうです.関数型言語でもいきなりHaskellLispに手を出すと途中で詰む人が多いですしね.(諸説あると思いますが) やはり大人数の開発ではなるべくみんなが理解しやすい文法で書けるという言語はよいのでしょう.だからこそRubyPythonといったライトな言語が流行っているのですし.

最後にHot Code Loadingとかいうワード.はじめて知りましたがErlang VMはデータはそのままにコードだけを最新に置き換えるという機能があるみたいです.ただ,謎バグを踏んだりと大変みたいですが.

Functional Programming with Elixir

関数型言語についてElixirで入門しようという話.対象ははじめて関数型の知識を勉強しようという人向け.確かにElixirで学んだほうが文法が辛いとか考えなくてよくわかりやすいかもしれない.あと発表で言っていたとおりElixirの=演算子は一般的なプログラミング言語の代入という意味ではなく,「パターンマッチング」ということに気をつけておかないといけないし,案外そのことで突っかかるかもしれないなぁと思いました.

Rediscovery of OTP

ブラウザゲームの時代から現在のゲーム開発まで色んなお話が面白かったです.Elixirは安定と信頼**のErlang VMで動いているという話と「Erlang VMは安定しているけど乗ってるサーバー(AWS)が安定しない」という話は名言な気がする.

あとgumiのPython 2コードは3へは移行せずにElixirに書き直すというお話だったのでぜひ今年か来年のPyConで話してほしいなぁと思った.

これ以降はMacのバッテリがなくなりスマホで頑張ってメモを取りながら聞いていましたがとりあえずElixirを勉強するには以下を理解する必要があるということがわかりました.

  • Elixirの文法 (当たり前)
  • OTPについて理解
  • Erlangを少し書ける読めるようになること.