【福岡x東京同時】Elixirで宇宙衛星/エッジコンピューティング/Web@マネーフォワードオフィス https://moneyforward.connpass.com/event/284805/
Rubyist から見た Elixir2023/06/22 @マネーフォワードオフィスmokichi / 齋藤 和也
View Slide
自己紹介名前:齋藤 和也 (35) HN:mokichi居住:東京都 出身:福岡県 🍜Twitter:@mokichi_s12m株式会社スマートアルゴリズム 代表取締役 / エンジニア複数社で技術顧問を務めるクラウドインフラを含むバックエンド開発や DevOpsが得意Ruby歴は10年⤴、Elixir歴は5年⤴、マネフォ課金歴も5年⤴
2022年2月 WEB+DB PRESSデビューしました 🎉WEB+DB PRESS Vol.127 特集2「Elixirによる高速なWeb開発!作って学ぶPhoenix」Elixirコミュニティのメンバーと共著担当:第5章(全5章)「LiveViewによるフロントエンドの開発」
Ruby と Elixir の比較
表面上は似てるところが結構多いRuby Elixir型システム 動的型付け 動的型付け命名規則 クラス :camel case関数・変数:snake caseモジュール:camel case関数・変数:snake case関数定義 def foo … end def foo do … endパッケージマネージャ rubygems.org hex.pm依存関係管理、タスク実行 Bundler, Rake MixWebアプリケーションフレームワーク Ruby on Rails (MVC) Phoenix (MVC)というのも... Elixir は元 Rails コミッターの José Valim さんが作ったプログラミング言語です!
● Ruby はオブジェクト指向型言語、Elixir は関数型言語● 関数型言語というと学術的な印象だが、Elixir は実用的な側面が強い○ モナドや圏論といった小難しい言葉は出てこない○ 純粋関数型言語ではなく、副作用も入れ放題!(適度に…ね)● Elixir は並行・並列・分散処理が得意で、耐障害性にも優れる○ Erlang VM 上で動く故の特徴を備えている● 注:1プロセスあたりの計算能力は高くはない○ Ruby < Elixir(Erlang VM) < JavaScript(V8)パラダイムも違うし、向いている領域も違う
Ruby を使っていて困ること
● Dockerイメージのサイズが大きくなりがちで、起動にも時間がかかる● 1プロセスあたりの並列処理性能が低いため、大量リクエストに備えて多くのプロセスを起動しておく必要がある● バッチ処理など大量データを扱う場合、ActiveRecordを使うと大量にメモリを使うし時間もかかる主に Rails の話。基本的には困らないが...サービスが成長してくると不得意な部分が顕在化する
Elixir 実際どう?
● パターンマッチやパイプ演算子をうまく書けたときの気持ちよさ● 変数がイミュータブルなため、破壊的変更の心配がない● HexDocs がとにかく見やすい & 結構みんなちゃんと書いてくれてる● 全体的にレスポンスがサクサクで、安定して動き続ける● Ecto というORM的なものがあるが、ActiveRecordほどの手軽さはない● 何かやろうとしたときに、情報/ライブラリの多さや知見を持つ人の多さはRuby のほうが圧倒的に上(Elixir も少なくはないよ!)楽しさと同時に Ruby の偉大さを感じる日々
前編:https://findy-code.io/engineer-lab/ruby-elixir1後編:https://findy-code.io/engineer-lab/ruby-elixir22年前にも Ruby と Elixir のイベントに出てました
とある Elixir のプロジェクトが進行中🏃💨年内には出せるはず...お楽しみに!!