web-dev-qa-db-ja.com

Elangができないこと、Erlangができないこと、またはその逆はありますか?

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

私の質問は、Elixirを選択した場合、Elixirではできませんが、Erlangではできることでつまずきますか? ElixirですべてのOTPのもの、すべてのErlangライブラリ、コードのリロードなどを使用できますか?

私はこの2つの間の誰かの好みを求めているのではありません。言語の可能性についての事実。できれば両方を本番で使用した人から。

94
Saša Šijak

はじめに-私はElixirを本番環境でのみ使用し、Erlangでは使用していません。

私は正直にエリクサーをお勧めします。これは私の意見であり、必ずしも正しいとは限りませんが、以下にその理由をリストします。

  1. 生産性:Ruby/Railsのバックグラウンドを持っているため、Elixirの構文とスタイルは非常に馴染みのあるものです。言語を習得するかどうかを判断するのに役立つ主な要因の1つは、その言語でどれだけ生産的になることができるか、主にRubyを選んだ理由です。エリクサーも同じです。 Rubyと同じ速さで作業できますが、同時実行性とパターンマッチングの利点がすべて追加されています。
  2. Erlang:ElixirはErlangの上に構築され、erlangとbeam vmにコンパイルされるため、すべてのerlangモジュールとパッケージにアクセスできます。したがって、エリクシルの使用が心配で、Erlangのすべての機能を利用できない場合は、そうすべきではありません。 Elixirには、GenServer、GenEventなど、より大きなErlang/OTP機能のほとんどの独自の実装さえあります。
  3. コミュニティ/リソース:Elixirコミュニティは本当に素晴らしいものです。スラックチャンネルは本当に人気があり、初心者の質問に対する回答を得るのに最適な方法です。すでにこの言語で書かれた非常に優れた本(Programming Elixir 1.2-デイブトーマス、Ruby Pickaxeの著者)もあり、これも言語への入門を非常に簡単にします。

本当に、もしあなたがこの2つに混乱があるなら、おそらくElixirがErlang + Moreのすべての機能を備えたはるかに優れた言語であるという同じ決定に達するでしょう。増加傾向にあり、正確な数字は覚えていませんが、Hex Webサイト(パッケージマネージャー)でパッケージダウンロードの大幅な増加について読んだことを覚えています。

35
Harrison Lucas

ErlangからElixirコードを自由に呼び出したり、その逆を行ったりすることができるので、一方ではできないことでつまずかないでください。 1つのプロジェクトでErlangファイルとElixirファイルを簡単に混在させることもできます。

Elixirの場合:

:erlang_module.erlang_function(args)

アーランで:

'Elixir.ElixirModule':elixir_function(args)
61
Paweł Obrok

TL; DR- Elixirで開始

ErlangはElixirと比較して学習曲線が急勾配です。 Elixirの学習を開始すると、自動的にErlangの学習を開始します。したがって、Elixirから始めてください。 ElixirはErlangとElixirで書かれています。 Githubでの配布を参照 (Elixirにはメタプログラミングとも呼ばれるマクロがたくさんあるため)。 Elixir Project Code distribution

ElixirをErlangで使用したり、その逆を行ったりすることができます。したがって、20年以上のライブラリの完全なErlangエコシステムです。

Erlang Solutions からの詳細

Elixirの「すぐに使える」生産性は、データ操作の表現におけるツールと利便性に重点を置いて達成されます。システム設計はElixirとErlangで同じですが、Elixirは多くの定型コードを削除し、拡張が容易です。ボイラープレートを削除することで生産性が向上し、プログラマーがフィードバックを迅速に取得できるようになります。できるだけ早く製品を市場に投入する場合に重要です。また、定型文が少ないと幸せな開発者になり、幸せな開発者は驚くほど生産的な開発者です。

ジョーアームストロング の(Erlangの発明者) Elixirに関するブログ投稿

Elixirについて学ぶためにここから始めてください- 入門

順調に進んだと感じたら、 エクササイズ および その他のリソース の練習に向かって進んでください。

30
Sairam

いくつかのことがあります。 Elixirでは再帰的なanon関数を作成できないと思います。公平を期すと、これは8年以上のErlangで私がする必要がなかったと思うことです。おそらく他にも、正直言って無視できるものがいくつかあります。

一般的に、ほとんどの人がErlangでできることを気にすることは、Elixirでもできますし、その逆も可能です。 Elixir側のコミュニティはより活発になっているようですので、そこから始めることをお勧めします。私は最近、ErlangからElixirに移行しました。Properのいくつかの派手なものを除けば、非常に簡単な移行であると言えます。

2
Zachary K