top of page

Elixirについて

elixir_edited.png

Elixirを採用した4つの理由

  1. 優れたエコシステムと開発者体験

  2. 進化したフォールトトレランス(耐障害性)

  3. より少ない労力でより多くのアウトプットを

  4. トレードオフのないパフォーマンス

Elixirは実用的でモダンな動的型付け関数型プログラミング言語です

RESTARではElixirを採用することで、高い生産性と開発体験を維持しながら安定且つ優れた機能開発を目指しています

私たちエンジニアチームはElixirを使って楽しみながら作業しています。

一緒に参加してみませんか?

1.  優れたエコシステムと開発者体験

Elixirは比較的若い言語であり、主流のエコシステムに比べて明らかにパッケージ数が少ないにもかかわらず、非常に質の高いエコシステムを提供することで他と一線を画しています。

例えば、Elixirには豊富な標準ライブラリ、ビルドツール、ExUnitテストフレームワーク、フォーマッター、ドキュメンテーションなど多岐にわたるツールを高品質で兼ね備えています。またPhoenixフレームワークはRubyライクなフルスタックなフレームワークであり、同フレームワークよりもさらに処理速度が早く、高い生産性とアプリパフォーマンスの両方を提供している便利なフレームワークです。

Elixirコミュニティはすでに完成された実用性の高いものであるため、ガイドライン通りに作成するだけで簡単にコードを作成することができます。

2.  進化したフォールトトレランス(耐障害性)

Elixirの基盤となっているErlang VM*は30年以上の歴史があり多くの通信会社やゲーム企業等に採用され高い信頼性のあるVMです。すなわちElixirはゼロから設計し開発された言語ではなく、通信業界で何十年も実証されてきた確かな技術をもって構築された言語です。

 

Erlangのセールスポイントの1つは高い耐障害性です。Erlang VMの設計は通信事業における高い耐障害性へのニーズに基づいています。その結果、障害とは縁遠い、大きな負荷がかかっても安定して稼働し続けることができる強固なプラットフォームが誕生したのです。Erlang VMを利用する限りサーバーのクラッシュやイベントループのスタックに注意を払う必要もありません。

 *Erlang VMの素晴らしさについてもっと知りたい方はSaša Jurićの講演をご覧ください。

3.   少ない労力でより多くのアウトプットを

私たちエンジニアはいつも複雑さと戦っているため、技術スタックをシンプルにすること大きな価値があると考えています。

オーソドックスな技術スタックに比べ、ElixirとPhoenixを使うことでより少ないスタックでより多くのことをができます。またツール間での依存関係が少ないためエラーの根本原因を少なくし安定性を高めることで最終的にメンテナンスのオーバーヘッドを減らすことにも繋がります。

Elixirはシンプルであるがゆえに私たち開発者たちにより快適な作業環境を提供してくれます。

さらにErlang、Elixir、Phoenixには、プロセス、タスク/エージェント、チャンネルなどの強力な主要機能が搭載されています。よってシンプルな設計・思考を保ったまま、並行処理、リアルタイムシステム、耐障害性などの難しい問題にも対応することができます。

4. トレードオフのないパフォーマンス

RESTARは以前Rubyを用いてプラットフォームのコードを書いていましたが、更なるパフォーマンスの改善を求めていました。だからといって技術の最適化を求め続けたり、大きなサーバーを購入することはコストがかかります。

 

そこを解決してくれたのがElixirです。

 

Elixirを採用することでスケーラビリティやサーバーコスト、パフォーマンス調整の時間を気にすることなく、ビジネスの価値を高めることを可能にしました。

もしパフォーマンスだけが重要な基準であれば私たちは皆Cやアセンブリでコーディングしているでしょう。Elixirは脆いasync/awaitやイベントループ、スレッドプールやコルーチンコンテキストを自ら管理する必要がなく、複雑なキャッシュも必要ありません。 

必要以上に注意したり何かを犠牲にすることなく、最高のパフォーマンスを発揮できるのがElixirの魅力です。

bottom of page