この質問は、Beam VMとそれが提供する機能のコンテキストにあり、チューリング完全言語ができることの一般的なコンテキストにはありません。純粋なErlangまたはElixirのいずれかを学習するために時間を費やしたいと思います。私はこの2つの基本的な違いを理解し、マクロ、より優れた構文、そして今日の言語のより速い開発のためにElixirに傾いています。
私の質問は、Elixirを選択した場合、Elixirではできませんが、Erlangではできることでつまずきますか? ElixirですべてのOTPのもの、すべてのErlangライブラリ、コードのリロードなどを使用できますか?
私はこの2つの間の誰かの好みを求めているのではありません。言語の可能性についての事実。できれば両方を本番で使用した人から。
はじめに-私はElixirを本番環境でのみ使用し、Erlangでは使用していません。
私は正直にエリクサーをお勧めします。これは私の意見であり、必ずしも正しいとは限りませんが、以下にその理由をリストします。
本当に、もしあなたがこの2つに混乱があるなら、おそらくElixirがErlang + Moreのすべての機能を備えたはるかに優れた言語であるという同じ決定に達するでしょう。増加傾向にあり、正確な数字は覚えていませんが、Hex Webサイト(パッケージマネージャー)でパッケージダウンロードの大幅な増加について読んだことを覚えています。
ErlangからElixirコードを自由に呼び出したり、その逆を行ったりすることができるので、一方ではできないことでつまずかないでください。 1つのプロジェクトでErlangファイルとElixirファイルを簡単に混在させることもできます。
Elixirの場合:
:erlang_module.erlang_function(args)
アーランで:
'Elixir.ElixirModule':elixir_function(args)
TL; DR- Elixirで開始
ErlangはElixirと比較して学習曲線が急勾配です。 Elixirの学習を開始すると、自動的にErlangの学習を開始します。したがって、Elixirから始めてください。 ElixirはErlangとElixirで書かれています。 Githubでの配布を参照 (Elixirにはメタプログラミングとも呼ばれるマクロがたくさんあるため)。
ElixirをErlangで使用したり、その逆を行ったりすることができます。したがって、20年以上のライブラリの完全なErlangエコシステムです。
Erlang Solutions からの詳細
Elixirの「すぐに使える」生産性は、データ操作の表現におけるツールと利便性に重点を置いて達成されます。システム設計はElixirとErlangで同じですが、Elixirは多くの定型コードを削除し、拡張が容易です。ボイラープレートを削除することで生産性が向上し、プログラマーがフィードバックを迅速に取得できるようになります。できるだけ早く製品を市場に投入する場合に重要です。また、定型文が少ないと幸せな開発者になり、幸せな開発者は驚くほど生産的な開発者です。
ジョーアームストロング の(Erlangの発明者) Elixirに関するブログ投稿
Elixirについて学ぶためにここから始めてください- 入門
いくつかのことがあります。 Elixirでは再帰的なanon関数を作成できないと思います。公平を期すと、これは8年以上のErlangで私がする必要がなかったと思うことです。おそらく他にも、正直言って無視できるものがいくつかあります。
一般的に、ほとんどの人がErlangでできることを気にすることは、Elixirでもできますし、その逆も可能です。 Elixir側のコミュニティはより活発になっているようですので、そこから始めることをお勧めします。私は最近、ErlangからElixirに移行しました。Properのいくつかの派手なものを除けば、非常に簡単な移行であると言えます。