Apr
17
fukuoka.ex#21:Lonestar ElixirConf 2019報告+世界デビュー祝
福岡にて、Elixirでワイワイする会です。会の後に、お酒と軽食(500円)で懇親会やります
Organizing : fukuoka.ex(福岡Elixirコミュニティ)
Registration info |
会場参加枠 Free
FCFS
リモート視聴枠 Free
FCFS
fukuoka.ex運営枠 ※一般参加の方は申込まないで下さい Free
FCFS
|
---|
Description
発足から1年8ヶ月、fukuoka.ex、遂に世界デビュー!!
【リモート視聴増枠】好評により、リモート視聴枠を増枠しました!!
fukuoka.ex#21:Lonestar Elixir Conf 2019報告+世界デビュー祝
今回のfukuoka.ex Meetupは、テキサス州オースティンで1ヶ月前(2/28~3/2)に開催された、Elixirの世界大会「Lonestar ElixirConf 2019」の凱旋報告会をしつつ、「fukuoka.ex世界デビュー」を一緒にお祝いする会です
【スペシャルゲスト増枠】fukuoka.ex発足時から応援いただいている、昨年から待望の、tokyo.ex主催 & 日本Elixir協会のおーはらさん、fukuoka.ex参戦!!
(MeetUpの説明続き)
Lonestar ElixirConf 2019には、fukuoka.exアドバイザーズから、piacere/zacky1972/takasehideki の3名が参加し、更に zacky1972 は、「ElixirConf初の日本人スピーカー」として、これまでfukuoka.exで研究・開発してきたElixir GPU実装「Hastega」のプレゼンテーションを行ってきました
この発表は、多くの海外Elixir開発者達と、Elixir創始者José Valimから強い関心が寄せられ、イベント後もelixirforumで取り上げられる反響を巻き起こしました
https://elixirforum.com/t/lonestar-elixir-2019-talks/20684/2
そんなHastega登壇を筆頭に、Elixirの組み込み実装「Nerves」や、フロント界隈を揺るがす可能性あるPhoenix新機能「LiveView」の各実践セッションと、他Lonestar ElixirConf 2019で語られたElixir最新情報を共有したいと思います
なお、会の後(21:00~)には、懇親会も開催しますので、各セッションのパーソナリティに質問したり、普段の業務では出会えないElixirに関心高いエンジニアとの交流をお楽しみください(もちろん、会のみの参加もOKです)
「Elixirって、今どんな感じなの?」
福岡Elixirコミュニティ「fukuoka.ex」とは?
「fukuoka.ex」は、大量アクセスのあるWeb・APIサーバ構築や、ビッグデータ分析/AI・機械学習向けデータ加工といった、「膨大なアクセスやデータの高速処理」と「高い開発効率」を両立できる関数型プログラミング言語「Elixir」と、そのWebアプリケーションフレームワーク「Phoenix」を福岡で広め、ワイワイと盛り上げていくコミュニティです
Elixirは、シンプルな言語仕様により、「プログラミングが初めて」という方でも比較的とっつきやすく、同時に、関数型言語にありがちな複雑さ(トリッキーな構文、数学やアカデミックに走り過ぎる、等)無しに関数型の強力さだけを抽出した、現実のアプリケーション開発を行うエンジニアに寄り添ってくれる言語です
Phoenixは、Webアプリケーションの世界では、最もメジャーな「Ruby on Rails」を作っていたメンバーによって開発された、大量アクセスと高速分散の捌きが得意なWebアプリケーションフレームワークで、Rails同等の高度なWebアプリ開発を、とても気軽に行えます(中でも、WebSocket性能は、あらゆる言語のFW中でも最速)
「fukuoka.ex」では、MeetUp(登壇会/勉強会)やプログラミング入門会、もくもく会、ハッカソン等を通じて、「Elixir/Phoenixの習得機会」と「実際のアプリケーション開発に役立つノウハウ」の提供を定期的に行うことで、福岡でのElixirプロダクション採用を増やし、Elixirに触れることで得られる「プログラミングの楽しさ」を福岡のエンジニアに体感する機会を増やすことをビジョンに掲げています
~ Elixir/Phoenixの現状について ~
Elixir/Phoenixにとって、2016~2018年は、
- マルチコアのCPU全てをフル活用できる「Flow」や「GenStage」
- 動的生成されたマルチプロセスを監視・自動再起動できる「Dynamic Supervisor」
- Webフレームワーク「Phoenix」のHTTP/2対応やwebpack対応
- IoTコアライブラリ「Nerves」と、クラウド上からファームウェア更新を叶える「NervesHub」
といったElixirならではの革新的な独自機能を出しつつ、「Elixir/Phoenixのみで、Webプロダクト開発やSI案件開発を不自由無く行える」フェーズへと進化しています
Githubに登録されているElixirライブラリも、36,000件を突破し、2年前の7,000件程度と比べ、5倍以上へと急増しました
2014~2015年付近は、Elixirも未だ未成熟で、「Erlangを覚えなければElixirは使えない」という認識が一般的でしたが、現状は、Elixir単独で充分にプロダクト開発/SI案件開発を行える状況へと変わってきています
また、2017年にはGCP(Google Cloud Platform)でのElixir採用、2018年にはAWSでのカスタムランタイム採用、といった、大手クラウドでのElixir採用という追い風もありました
福岡においても、Elixir/Phoenixをプロダクト開発/SI案件開発で採用されるケースが増え、他言語よりも明らかにレスポンス速度が速いWeb+DBが数日で構築できた事例や、1年以上ダウンせずに運用が回った事例など、実運用の実績も増えています(福岡以外でも、SlackやLINE、ニコニコ動画、mixi、gumi等での活用事例もあります)
全世界で見れば、2014年は、200社程度しか採用していなかったのが、2016年は1,100社を超え、現在は、ゲームサーバだけに限らず、フィンランドやスウェーデン、イギリスを始めとする、金融/証券/SNS/メッセージング基盤などの分野で活用されており、世界的にも有名なSlackやDiscordでも積極的に活用されています
そしてElixir/Phoenixにとっての2019年は、以下を完備し、スマホ開発やクラウドへの接続性も大幅に増強されました
- Phoenixで、JavaScript無のElixirのみで、フロント処理を動的生成できる「LiveView」
- 対障害性を備え、Amazon SQSとも接続できる並列ライブラリ「Broadway」
- Prometheus等の外部監視系への容易な接続を実現する「Telemetry」
今は、まさにElixir/Phoenixを始めるには、もっとも美味しいタイミングと言えるでしょう
海外と福岡のおける導入企業/規模/事例は、以下fukuoka.exポータルにて紹介しています
https://fukuokaex.fun
更に、fukuoka.exでは、これまでの言語では表現できなかったような次世代の高生産性Web/API開発スタイルの確立や、大規模インフラでもDBサーバをネックにしないためのスケールアウトの仕組み、ElixirとGCP上のAIエンジンを繋いだ画像解析システム、数倍のパフォーマンスを発揮できるGPU/FPGA活用、Elixirプロセスよりも更に軽量なプロセスライブラリ実装、ElixirによるElixirコンパイラ開発といった、先端領域でのElixir活用も、今まさに熱く展開しています
※fukuoka.exのコミュニティの成り立ちやビジョンは、文末少し上をご覧ください
※もし「関数型言語」に苦手意識や拒否症がある方は、文末をご覧ください
開催:2019年 4月 17日 (水) 19:00〜21:00(18:45 受付開始)
場所:株式会社Fusic(最寄駅: 天神)
住所:福岡市中央区天神4-1-7 第3明星ビル6F
(地下鉄天神駅下車、天神地下街 東-1b出口から徒歩3分)
※1階にファミリーマートの入ったビルの6階です
タイムテーブル
時間 | 発表者 | 内容 |
---|---|---|
18:45-19:00 | - | 開場(受付開始)、懇親会費徴収 |
19:00-19:10 | fukuoka.exビルダー shozo_koga |
はじめに |
19:10-19:15 | (全員) | 「30秒お互い、どこから来たの?」で場を暖めてー(^o^) |
19:15-19:30 | fukuoka.exオーガナイザー piacere |
Lonestar ElixirConf 2019 Austinから知る世界のElixir事情 |
19:30-19:50 | Elixir IoT芸人 takasehideki |
オースティンから見えてきた「ElixirでIoT」の世界 ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~ |
19:50-20:00 | shozo_koga | Phoenix新技術「LiveView」でJavaScriptを書かないフロント開発 |
20:35-20:05 | (全員) | 記念撮影 |
20:05-20:10 | piacere | fukuoka.ex特別セッション前座 fukuoka.exと様々なElixirコミュニティとの出会い |
20:05-20:20 | tokyo.ex主催 日本Elixir協会 理事 ohrdev |
fukuoka.ex特別セッション① Serverless Elixirを動かすまで |
20:20-20:55 | カーネルハッカー zacky1972 |
fukuoka.ex特別セッション② 解説付ElixirConf動画「Hastega: Challenge for GPGPU on Elixir」+α |
21:00-22:00 | (参加希望者) | ♪~ 懇親会 ~♪ ※当日の飛び入りもOK |
-22:00 | - | 閉会 |
持ち物
特にありません
名刺数枚と、Twitterができるデバイスがあると良いかと思います
なお、ゲストWifi利用可能ですので、Pocket Wifiやテザリング端末は無くても大丈夫です
福岡Elixirコミュニティ「fukuoka.ex」とは?
「fukuoka.ex」は、大量アクセスのあるWeb・APIサーバ構築や、ビッグデータ分析/AI・機械学習向けデータ加工といった、「膨大なアクセスやデータの高速処理」と「高い開発効率」を両立できる関数型プログラミング言語「Elixir」と、そのWebアプリケーションフレームワーク「Phoenix」を福岡で広め、ワイワイと盛り上げていくコミュニティです
Elixirは、シンプルな言語仕様により、「プログラミングが初めて」という方でも比較的とっつきやすく、同時に、関数型言語にありがちな複雑さ(トリッキーな構文、数学やアカデミックに走り過ぎる、等)無しに関数型の強力さだけを抽出した、現実のアプリケーション開発を行うエンジニアに寄り添ってくれる言語です
Phoenixは、Webアプリケーションの世界では、最もメジャーな「Ruby on Rails」を作っていたメンバーによって開発された、大量アクセスと高速分散の捌きが得意なWebアプリケーションフレームワークで、Rails同等の高度なWebアプリ開発を、とても気軽に行えます(中でも、WebSocket性能は、あらゆる言語のFW中でも最速)
「fukuoka.ex」では、MeetUp(登壇会/勉強会)やプログラミング入門会、もくもく会、ハッカソン等を通じて、「Elixir/Phoenixの習得機会」と「実際のアプリケーション開発に役立つノウハウ」の提供を定期的に行うことで、福岡でのElixirプロダクション採用を増やし、Elixirに触れることで得られる「プログラミングの楽しさ」を福岡のエンジニアに体感する機会を増やすことをビジョンに掲げています
「でも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マスター」シリーズをご覧ください