Open10

Elixirを勉強する

winnie279winnie279

Elixirとは?

並列処理が得意な言語である。(並行処理では?)

Elixirは仮想マシン上で動作し大量の並列処理を安定的に実行できるプログラミング言語です。[1]

マイクロサービスの構築に秀でている。

「Antikythera Framework」はElixirの動作基盤であるErlang(※)(アーラン)言語の持つ特性を活用することにより複数のマイクロサービスの同時実行を可能とする環境を提供し、こうした課題を解決します。[2]

「Erlangは拡張性、同時実行性、耐性を必要とする分散システムの開発にうってつけだ。当社のように大量のトラフィックに対処しなければならない企業にとって最高のテクノロジーといえる」と語るのは、同社のソフトウェアアーキテクチャ部長チャンドラ・ムラパティ氏だ。[3]

Elixirに入門する

きっかけ

脚注
  1. https://anken-hyouban.com/blog/2021/08/03/elixir/ ↩︎

  2. https://prtimes.jp/main/html/rd/p/000000150.000011476.html ↩︎

  3. https://techtarget.itmedia.co.jp/tt/news/1605/18/news01.html ↩︎

  4. https://qiita.com/advent-calendar/2022/elixir ↩︎

  5. https://qiita.com/piacerex/items/7bf8f9f4f5f576e597f5 ↩︎

winnie279winnie279

ライブラリなど

  • Phoenix[1]:Webアプリのフレームワーク。
    • SSR WebFWからLiveView中心のSPA WebFWへ?
    • ReactやVue.jsを別立てせずともサーバサイドロジックと共にリアルタイムフロントがコーディングできる?
    • JavaScriptなしのWeb開発?
  • ElixirDesktop[1:1]:ネイティブアプリのフレームワーク。Flutterのような感じ。
  • Nx[1:2]:行列演算のライブラリ。PythonでいうNumPy。
  • Axon[1:3]:ニューラルネットワークのライブラリ。
  • Livebook[1:4]:実行環境。PythonでいうJupyter Notebook。
  • Fly[1:5][2]:実行環境。PythonでいうColaboratory。


LivebookでNxを実行している[2:1]

脚注
  1. https://qiita.com/piacerex/items/7bf8f9f4f5f576e597f5 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. https://qiita.com/piacerex/items/0871b54b41128d426da5 ↩︎ ↩︎

winnie279winnie279

並行処理

以下の話が分かりやすい。

「Erlangで作られたWebサーバは一つの接続ごとに一つのプロセスを生成する。10万個のチャットのセッションが必要なら10万個のWebサーバが起動する。仮にその中の一つが落ちたとしても、誰も気にしない」[1]

EVM?
OSに割り当てられたメモリをEVMがさらにプロセスに割り当てる感じか?[1:1]

脚注
  1. https://taku-exs.hatenablog.com/entry/2019/07/15/223025 ↩︎ ↩︎