Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rubyistから見たElixir

 Rubyistから見たElixir

【福岡x東京同時】Elixirで宇宙衛星/エッジコンピューティング/Web@マネーフォワードオフィス
https://moneyforward.connpass.com/event/284805/

mokichi

June 22, 2023
Tweet

More Decks by mokichi

Other Decks in Programming

Transcript

  1. 自己紹介 名前:齋藤 和也 (35) HN:mokichi 居住:東京都 出身:福岡県 🍜 Twitter:@mokichi_s12m 株式会社スマートアルゴリズム 代表取締役 /

    エンジニア 複数社で技術顧問を務める クラウドインフラを含むバックエンド開発や DevOpsが得意 Ruby歴は10年⤴、Elixir歴は5年⤴、マネフォ課金歴も5年⤴
  2. 表面上は似てるところが結構多い Ruby Elixir 型システム 動的型付け 動的型付け 命名規則 クラス  :camel case 関数・変数:snake

    case モジュール:camel case 関数・変数:snake case 関数定義 def foo … end def foo do … end パッケージマネージャ rubygems.org hex.pm 依存関係管理、タスク実行 Bundler, Rake Mix Webアプリケーションフレームワーク Ruby on Rails (MVC) Phoenix (MVC) というのも... Elixir は元 Rails コミッターの José Valim さんが作ったプログラミング言語です!
  3. • Ruby はオブジェクト指向型言語、Elixir は関数型言語 • 関数型言語というと学術的な印象だが、Elixir は実用的な側面が強い ◦ モナドや圏論といった小難しい言葉は出てこない ◦

    純粋関数型言語ではなく、副作用も入れ放題!(適度に …ね) • Elixir は並行・並列・分散処理が得意で、耐障害性にも優れる ◦ Erlang VM 上で動く故の特徴を備えている • 注:1プロセスあたりの計算能力は高くはない ◦ Ruby < Elixir(Erlang VM) < JavaScript(V8) パラダイムも違うし、向いている領域も違う
  4. • パターンマッチやパイプ演算子をうまく書けたときの気持ちよさ • 変数がイミュータブルなため、破壊的変更の心配がない • HexDocs がとにかく見やすい & 結構みんなちゃんと書いてくれてる •

    全体的にレスポンスがサクサクで、安定して動き続ける • Ecto というORM的なものがあるが、ActiveRecordほどの手軽さはない • 何かやろうとしたときに、情報/ライブラリの多さや知見を持つ人の多さは Ruby のほうが圧倒的に上(Elixir も少なくはないよ!) 楽しさと同時に Ruby の偉大さを感じる日々