Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

Akatsuki Hackers Labは株式会社アカツキが運営しています。

急いで学ぶElixir#01

Motivation

クラスメソッドさんがDevelopers.IOにとても良い記事を投稿されていたので、Elixir版も書きたくなりました。

Elixirを始める

最近のソーシャルゲームでは、ユーザー同士によるリアルタイムマルチプレイがトレンドになってきました。 アカツキが最近リリースしたメザマシフェスティバルも、Node.jsによってマルチプレイが実装されています。 個人的にリアルタイムゲームサーバーの他の実装例が気になったので、調べてみることにしました

Call of Dutyの実装言語であるErlangですが、このErlangVM上で動作するElixirという言語があります。 筆者はErlang関数型言語も知見が全く無いですが、学んだことをまとめていきたいと思います。

動作環境

今回使用した動作環境は以下のとおりです。

  • OS: MaxOS X 10.9.5
  • Elixir 1.0.5

Elixirとは

Elixirはオープンソースプログラミング言語で、 Erlang VM上で動作します。 主な特徴は以下のとおり。

  • Erlang VM上で動くので、Erlangの良い所(耐障害性、高可用性)が利用できる
  • Erlangの関数を呼び出すことができる
  • スケールしやすく、プロセス間の通信が楽
  • Fault-tolerance
  • 関数型言語
  • REPL(rubyで言う所のirb)
  • mix(ビルドツール)

Elixirのセットアップ

インストール

homebrewからインストールすることが出来ます

$ brew install elixir

サンプルを動かしましょう

せっかくなので今回はREPLを使ってみたいと思います。 iexコマンドでREPLを起動することが出来ます。(Ctrl+C 2回で停止)

$ iex

Hello Worldを実行するために、IO.puts/1を利用します。

iex(1)> IO.puts("Hello Elixir") Hello Elixir :ok

IO.puts/1は:okという値を返却しますが、これらについては次回以降に解説したいと思います。

また、Elixirは公式のドキュメントが豊富なので、気になった方はこちらを読み進めてみてください。

参考サイトなど