1. ホーム
  2. erlang

[解決済み] ElixirにできてErlangにできないことはありますか、またはその逆はありますか?

2022-09-19 02:20:53

質問

この質問はBeam VMとそれが提供する機能についてのもので、チューリング完全言語ができることという一般的な文脈ではありません。私は純粋なErlangかElixirのどちらかを学ぶために時間を費やしたいと思っています。この2つの基本的な違いは理解していますし、マクロ、より良い構文、そして今日の言語のより速い開発のためにElixirに傾倒しています。

私の質問は、もしElixirを選んだら、ElixirではできないけれどErlangではできることにつまずくでしょうか?OTPのもの、Erlangのライブラリ、コードリロードなどすべてをElixirで使うことができますか?

私は2つの言語のどちらを好むかを聞いているのではありません。できれば実運用で両方を使ったことがある人からお願いします。

どのように解決するのですか?

前置きが長くなりましたが、私は実運用ではElixirしか使ったことがなく、Erlangは使ったことがありません。

私は正直に言って、Elixirをお勧めします。これは私の意見であり、必ずしもあなたにとって正しいとは限りませんが、以下に私の理由を列挙します。

  1. 生産性。私はRuby/Railsのバックグラウンドを持つので、Elixirの構文とスタイルは私にとって非常に馴染みのあるものでした。私が言語を学ぶかどうかを決定する主な要因の1つは、その言語でどれだけ生産的になれるか、つまり主にRubyを選んだ理由です。Elixirも同じです。同時並行処理やパターンマッチといった付加的な利点もあり、Rubyと同じように高速に処理できます。
  2. Erlangです。ElixirはErlangの上に構築されていて、erlangとbeam vmにコンパイルされるので、すべてのerlangモジュールとパッケージにアクセスすることができます。ですから、もしあなたがエリクサーを使っていてErlangのすべての機能が使えないのではないかと心配しているのなら、そんなことはありません。ElixirはGenServerやGenEventなど、ErlangやOTPの大きな機能のほとんどを独自に実装しているくらいです。
  3. コミュニティとリソース。Elixirのコミュニティは本当に素晴らしいものです。Slackチャンネルは本当に人気があり、初心者の質問に答えてくれる素晴らしい方法です。また、Elixirに関する書籍(Programming Elixir 1.2 - Dave Thomas, the Ruby Pickaxeの著者)も充実しており、Elixirを簡単に使いこなすことができます。

ElixirはErlangのすべての機能+αを備えた、より優れた言語であるという結論に達するでしょう。正確な数字は覚えていませんが、Hexのウェブサイト(パッケージマネージャ)からパッケージのダウンロードがかなり増えていることを読んだのを覚えています。