Feb
24
Elixiroshima 第1回ミートアップ — Elixir、始めてみようや。広島での。
広島のElixirコミュニティ、その名もElixiroshimaが始まるでよ
Organizing : Elixiroshima
Registration info |
参加枠 Free
FCFS
LT枠 (5~10分程度) Free
FCFS
|
---|
Description
広島Elixirコミュニティ「Elixiroshima」とは?
Elixir + Hiroshima で Elixiroshima。 (「エリクスィロシマ」のように発音。発音いたしいのう)
広島Elixirコミュニティ Elixiroshima が生まれたんよー! Elixiroshima は、プログラミング言語 Elixir をこれから始めたい広島やその近辺の人にぴったしな、新生Elixirコミュニティです。
Elixiroshima では、会合を通して、Elixir, Phoenixの習得機会と実際のアプリケーション開発に役立つノウハウを共有して、広島でのElixir採用を増やしながら、プログラミングの楽しさを共有します。プログラマに限らず、プログラミングが好きな人、プログラミングに興味のある人是非どうぞ。
Elixiroshima 第1回ミートアップ — Elixir、始めてみようや。広島での。
今回は、Elixiroshima発足を記念して、講演・ハンズオン・LTからなるミートアップ (顔合わせして勉強し合う会) を開催します。
これを機にElixirに入門してみませんか?
piacere さんの講演 & ハンズオン!
fukuoka.ex 代表・主催である piacere さんをお迎えします 。(福岡では既に Elixir が盛んで、 Elixir コミュニティ fukuoka.ex があります。)
piacere さんには、講演とハンズオンをお願いしています! 今こそさくっと Elixir に入門できるチャンスです!
これから広島で先端技術をやりたい方や、最新のプログラミングを学びたい方、未来に向けてITに強くなりたい方など、技術への興味レベルが高い方や、プログラミングに関心高い方のご参加を歓迎します。
ライトニングトーク(LT, 短い講演) 募集
また、Elixirを使ったことある方や、最近ちょっと入門してみた方で、入門者向けLTをやってみたい方も受け付けていますので、どうぞこの機会に挑戦してみてください。勉強会に参加するときに自分のしゃべると非常に勉強になります (フォローしますので、ご安心ください)
懇親会
なお、会の終了後、懇親会を行います(会費は現地で徴収)ので、講演者に質問したり、普段の業務では出会えないElixirに関心高い人との交流をお楽しみください。
タイムテーブル
時間 | 発表者 | 内容 |
---|---|---|
12:45-13:00 | - | 開場(受付開始、 |
13:00-13:10 | Nyoho | はじめに ~Elixiroshima発足に際して~ |
13:10-13:15 | (全員) | (各30秒ずつ)「みんなどこから来たの?」 (場を暖める (^o^)) |
13:15-13:45 | 福岡Elixirプログラマ fukuoka.ex代表 piacere | 1: 発足記念セッション ① 講演 「いまElixirを始めるのは何故?~地方と日本に訪れる、バブル崩壊とデータ量爆発、そして人手不足~」 |
13:45-13:50 | (全員) | 記念撮影 |
13:50-14:00 | (募集中) | 2: LT (LT枠の人数によって時間を伸ばす) |
14:00-14:40 | piacere | 3: 発足記念セッション ② ハンズオン 「Elixir/Phoenixのインストール、webページ作成」 |
14:40-14:45 | - | 休憩 |
14:45-14:55 | (募集中) | 4: LT (LT枠の人数によって時間を伸ばす) |
14:55-15:40 | piacere | 5: 発足記念セッション ③ ハンズオン 「Phoenix + Vue.jsで2倍速開発」 |
15:40ごろ(LTが多いと順次延長) | - | 閉会・会費徴収 → 懇親会 |
持ち物
- (できれば)パソコン
- (できれば)
elixir
コマンドのインストール- Wi-Fiがありますのでその場でインストールしてくださってもかまいません
- Homebrew の方は
brew install elixir
だけ - Docker の方は Docker 公式イメージ
- (あれば)名刺
- (あれば)ご自身のことがわかるURLへのQRコード(の画像や紙)
ゲストWi-Fiはご用意いたします。
プログラミング言語 Elixir
関数型プログラミング言語 Elixir は、大量アクセスのあるWeb・APIサーバ構築や、ビッグデータ分析/AI・機械学習向けデータ加工といった、「膨大なアクセスやデータの高速処理」と「高い開発効率」を両立できます。webアプリケーションフレームワーク Phoenix もあります。不死鳥 Phoenix は広島では復興のシンボルとして長らく使われていますので、これまた広島にぴったしですね。
Elixirは、シンプルな言語仕様により、プログラミングが初めて という方でも比較的とっつきやすく、同時に、関数型言語にありがちな複雑さ(トリッキーな構文、数学やアカデミックに走り過ぎる、等)なしに、関数型の強力さだけを抽出した現実のアプリケーション開発のできる言語です。
Phoenixは、webアプリケーションの世界では、最もメジャーな Ruby on Rails を作っていたメンバーによって開発された、大量アクセスと高速分散の捌きが得意なwebアプリケーションフレームワークで、Rails同等の高度なWebアプリ開発をとても気軽に行えます。中でも、WebSocket性能は、あらゆる言語のフレームワーク中でも最速です。
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)をご覧ください。