6

私は初めて Erlang に飛び込み始めました。OTP は、高可用性の分散処理のゴールド スタンダードとして愛好家や批評家から高く評価されています。

OTP が何十年も前から存在し、公然と文書化されていることを考えると、軽量スレッド/プロセスをサポートする他の言語が独自のバージョンを採用していないのはなぜですか? 技術的/政治的な課題はありますか? それとも、誰もが肩をすくめてErlangを学ぶのでしょうか?

ありがとう!

4

3 に答える 3

6

最大の問題は、ほとんどの言語ランタイムに組み込みの軽量の同時実行性と終了シグナル伝達によるエラー分離がないことです。これらがなければ、OTP を適切に移植するのは非常に困難です。

適切な種類のランタイムを備えた言語については、OTP にインスパイアされたフレームワークを構築するための努力または少なくとも計画を目にしています。最初に頭に浮かぶのはCloud Haskellです。また、Go と Rust が OTP のようなものをまだ持っていない場合でも、最終的にはそれを持っていると思います。

于 2013-09-24T19:02:35.870 に答える
1

Erlang 自体は、OTP で知られているのと同じ機能用に設計されているため、技術的な課題があります。適切な例として、Basho Riakは、Erlang で書かれた分散フォールト トレラント キー/値ストアです。Haskell や類似の関数型言語に移植できるかもしれませんが、おそらく大変な作業になるでしょう。ちょっとした楽しみとして、Elixir 言語で書かれた OTP を調べてみてください。

于 2013-09-23T21:30:54.570 に答える
0

実際、それは(試みられた)。

Akka は、いくつかの OTP 機能を取り、それらを Scala for JVM に実装するライブラリです。JVM と BEAM (Erlang VM) の基礎となる原則が大きく異なることを考えると (主に GC、スケジューリング、およびメッセージ パッシングが根本的に異なります)、その実装がどれほど成功しているか、元の OTP の利点がどれだけ維持されているかはわかりません。これについては、インターネット上で多くの (白熱した) 議論が繰り広げられています。

于 2013-09-25T13:06:55.123 に答える