Elixiroshima 第1回ミートアップ — Elixir、始めてみようや。広島での。

日程: 2019/02/24(日) 13:00 〜 17:00

会場: 広島大学 東千田キャンパス S棟205講義室 〒730-0053 広島県広島市中区東千田町1丁目1-89

主催: Elixiroshima

ハッシュタグ :#Elixiroshima
募集内容

参加枠: 無料

LT枠 (5~10分): 無料

広島Elixirコミュニティ「Elixiroshima」とは?

Elixir + Hiroshima で Elixiroshima。 (「エリクスィロシマ」「エリクサロシマ」のように発音。発音いたしいのう)

広島Elixirコミュニティ Elixiroshima は、プログラミング言語 Elixir をこれから始めたい広島やその近辺の人にぴったしな、新生Elixirコミュニティです!

大量アクセスのあるWeb・APIサーバ構築や、ビッグデータ分析/AI・機械学習向けデータ加工といった、「膨大なアクセスやデータの高速処理」と「高い開発効率」を両立できる関数型プログラミング言語 Elixir と、そのwebアプリケーションフレームワーク Phoenix を広島で広め、ワイワイと盛り上げていきます。

不死鳥 Phoenix は広島では復興のシンボルとして長らく使われていますので、これまた広島にぴったしですね。

Elixirは、シンプルな言語仕様により、プログラミングが初めて という方でも比較的とっつきやすく、同時に、関数型言語にありがちな複雑さ(トリッキーな構文、数学やアカデミックに走り過ぎる、等)なしに、関数型の強力さだけを抽出した現実のアプリケーション開発のできる言語です。

Phoenixは、webアプリケーションの世界では、最もメジャーな Ruby on Rails を作っていたメンバーによって開発された、大量アクセスと高速分散の捌きが得意なwebアプリケーションフレームワークで、Rails同等の高度なWebアプリ開発をとても気軽に行えます。中でも、WebSocket性能は、あらゆる言語のフレームワーク中でも最速です。

Elixiroshima では、ミートアップを通じて、Elixir, Phoenixの習得機会と実際のアプリケーション開発に役立つノウハウを共有し、広島でのElixirプロダクション採用を増やし、Elixirに触れることで得られるプログラミングの楽しさを、広島に集まるプログラミング好きやエンジニアに体感してもらう機会を増やすことをビジョンに掲げています。

Elixiroshima 第1回ミートアップ — Elixir、始めてみようや。広島での。

今回は、Elixiroshima発足を記念して、セッション・LT主体のミートアップ (顔合わせして勉強し合う会) を開催します。

特に、セッションでは、既に Elixir が盛んな福岡の Elixir コミュニティである fukuoka.ex 代表・主催である piacere さんをお迎えします

これから広島で先端技術をやりたい方や、最新のプログラミングを学びたい方、未来に向けてITに強くなりたい方など、技術への興味レベルが高い方や、プログラミングに関心高い方のご参加を歓迎します。

また、Elixirを使ったことある方や、最近ちょっと入門してみた方で、入門者向けLTをやってみたい方も受け付けていますので、どうぞこの機会に挑戦してみてください。(Elixirについても、イベント開催についても、充分経験を積んでいる私達が、120%フォローしますので、ご安心ください)

なお、会の終了後、飲み屋に移動して、懇親会を行います(会費は現地で徴収)ので、各トラックのパーソナリティに質問したり、普段の業務では出会えないElixirに関心高いエンジニアとの交流をお楽しみください。もちろん、会のみの参加もOKです。

タイムテーブル

時間発表者内容
12:45-13:00開場(受付開始、会費徴収
13:00-13:10Nyohoはじめに ~Elixiroshima発足に際して~
13:10-13:15(全員)(各30秒ずつ)「みんなどこから来たの?」 (場を暖める (^o^))
13:15-13:45福岡Elixirプログラマ fukuoka.ex代表 piacere1: 発足記念セッション① 講演 「いまElixirを始めるのは何故?~地方と日本に訪れる、バブル崩壊とデータ量爆発、そして人手不足~」
13:45-13:50(全員)記念撮影
13:50-14:00(募集中)2: LT (LT枠の人数によって時間を伸ばす)
14:00-14:40piacere3: 発足記念セッション② ハンズオン 「Elixir/Phoenixのインストール、webページ作成」
14:40-14:45休憩
14:45-14:55(募集中)4: LT (LT枠の人数によって時間を伸ばす)
14:55-15:40piacere5: 発足記念セッション③ ハンズオン 「Phoenix + Vue.jsで2倍速開発」
15:40ごろ閉会・会費徴収 → 懇親会

持ち物

  • (できれば)パソコン
  • (あれば)名刺
  • (あれば)ご自身のことがわかるURLへのQRコード(の画像や紙)

ゲストWi-Fiはご用意いたします。

Elixirって、今どんな感じなの?

Elixir/Phoenixにとって2016~2018年は、マルチコアのCPU全てをフル活用できる「Flow」「GenStage」や、GenStageを基盤とした「Dynamic Supervisor」がリリースされ、PhoenixもHTTP/2対応やwebpack対応が進み、Elixirならではの独自色を出しながら、「Elixir/Phoenixでプロダクト開発やSI案件開発を不自由無く行える」フェーズへと進化しています。

Githubに登録されているElixirライブラリも、36,000件を突破し、2年前の7,000件程度と比べ、5倍以上へと急増しました。

2014~2015年付近は、Elixirも未だ未成熟で、「Erlangを覚えなければElixirは使えない」という認識が一般的でしたが、現状は、Elixir単独で充分にプロダクト開発/SI案件開発を行えています。

2017年にはGCP (Google Cloud Platform) でのElixir正式採用、2018年にはAWS Lambdaでのカスタムランタイム正式採用、といった追い風もありました。

全世界で見れば、2014年は、200社程度しか採用していなかったのが、2016年は1,100社を超え、有名どころで言うと、SlackやDiscordでも積極的に使われるようになりました。

以前は、大量アクセスを有するゲームサーバでのElixir活用が目立っていましたが、現在は、フィンランドやスウェーデン、イギリスを始めとする、金融・証券・SNS・メッセージング基盤などの分野でも活用されています。

福岡においても、Elixir/Phoenixをプロダクト開発/SI案件開発で採用されるケースが増え、他言語よりも明らかにレスポンス速度が速いWeb+DBが数日で構築できた事例や、1年以上ダウンせずに運用が回った事例など、実運用の実績も増えています。(福岡以外でも、LINEやニコニコ動画、mixi、gumiでの活用事例もあります。)

今はElixir/Phoenixを始めるにはもっとも美味しいタイミングと言えるでしょう。

海外と福岡のおける導入企業、規模、事例は、fukuoka.ex ポータル/で紹介されています。

「じゃが Elixir いうてからあんたぁ、『関数型言語』じゃろ? むつかしゅうないん?」

一般的に「関数型言語」と言えば、言語の習得が難しく、組織として選定しづらいイメージがありますが、Elixirは、言語仕様や構文がシンプルかつ簡単なので、「育成や習得の容易性」を切り捨てること無く、関数型のメリットも享受できます。

関数型のメリットは、以下の通りです。

  • 状態が無いことで、同じ入力を何度行っても同じ出力しか返さないので、意図しない挙動にならない
  • 変数がイミュータブル(作成後にその状態が不変)なので、マルチスレッドや並行処理で競合しない
  • プログラム構造が小さな関数群で構成され、シンプルに保たれるため、変更容易性が向上する
  • 少ないコードで、凝縮度の高い高度な処理が書ける
  • リスト設計に慣れていくと、他言語で数百行かかる複雑な処理も、数行のコードで組むことが可能になる
  • できあがったコードは、オブジェクト指向言語の1/100の量になることもあり、見た目も100倍エレガント
  • オブジェクト指向言語経験者の移行は大変(関数型全般に言える)だが、移行後は、何倍も生産性が高まる

更に、Elixirならでは の以下メリットも上乗せされます。

  • 習得がカンタンなので、プログラミング経験が無い入門者・初級者向け
  • 関数の引数でのパターンマッチが可能で、呼出時の事前条件チェックや関数呼び分けには、快感すら感じる
  • JSONパースが得意なので、Google APIやBacklog API等、様々なWeb APIとの連携に強い
  • マルチコアCPUを簡単にフル活用できる
  • マルチクラスタ(AWS、GCP、Azure)のスケールアウトも楽々実現
  • 長期間の安定運用を実現してきた「Erlang VM」の元で動作する
  • データ変換とバイナリデータ検索に特化しているので、ファイルヘッダ解析やIoT/ドローン制御にも向いている

実際に、Elixirがどの位カンタンに習得できるかと言うと、たった3つの関数を覚えるだけ、30分~1時間もあれば、Web+DB / Web+API / Webグラフ表示まで実現できてしまいます。

通常の関数型言語と一線を画す、このElixir/Phoenixのパワーを直接体感してみたい方は、「ExcelでElixirマスター」シリーズ (qiita)をご覧ください。

エントリー先

https://elixiroshima.connpass.com/event/119543/