20

こんにちは、FP 言語を 1 つ取り上げたいと思います (多くのことを学ぶ必要のない立場で働くのは常に苦痛です)。いくつかの調査を行った後、Erlang と OCaml は私が実際に使用したい 2 つの言語だと感じました。次の理由で足を濡らしたい:

1) 私は主に C++ の高可用性 Web サーバー バックエンド システムに取り組んでいます。Erlang はスケーラビリティとフォールト トレランスの点で優れていると聞きました。現在の会社で Erlang を使用するプロジェクトはないと思いますが、Erlang は私の長期的なキャリア開発に適した言語であると感じています。

2) 私には、OCaml がとても得意な同僚がいます。つまり、彼は OCaml がとても得意です (しかし、彼は現在、日常業務で OCaml に取り組んでいません。彼はいくつかのライブラリを維持しています)。だから私が OCaml を学ぶなら、彼は良いリソースになるかもしれないと考えました。

私の興味は主に分散システム (私の現在の仕事はミドルウェア開発の仕事です) とハイパフォーマンス コンピューティングです (私は大学院で数年間、特に金融アプリケーションの PDE について研究していたと思います)。いつか戻って財務モデリングの仕事をするかもしれないと常に感じていました)

助言がありますか?私はそれほど賢くないので、「両方を学ぶ」ことを提案しないでください:-)

ありがとう

4

4 に答える 4

8

Ocaml は素晴らしい言語で、私のお気に入りの 1 つですが、分散システムに興味がある場合は、分散システムに関して他の FP 言語よりも優れている Erlang をお勧めします (ただし、派生物があります)。 Ocaml はJocamlと呼ばれ、いくつかの興味深い側面があります)。

Ocaml は、その基礎となるアーキテクチャを考えると、並列処理だけを見ても弱いです。Haskell と Clojure の両方に、より良い話があります。(とは言っても、1 つの FP 言語を取得すると、基本原則を他の言語に非常に簡単に持ち込むことができ、将来的に役立つ可能性があります。Scala と Clojure はどちらも、 JVM.)

于 2009-08-24T07:48:32.337 に答える
3

OCaml に「本当に優れた」同僚がいる場合、その人があなたの質問に喜んで答えてくれると仮定すると、あなたには素晴らしいリソースがあるように思えます。行き詰まった場合に質問できる知識のある人が周りにいると、学ぶのが常に簡単になります.

はい、並列処理に関して OCaml に最高の話がないことは事実ですが、OCaml で並列処理を行う方法はいくつかあります (フォークベースが最も一般的であるようです - 並列マップのようなものを含む prelude.ml をチェックしてください: http ://github.com/kig/preludeml/tree/master )。また、Erlang の Actor ベースの並行性は、他の言語で複製するのが非常に簡単なようです。あなたとあなたの同僚は、OCaml 用の Actor ベースの同時実行ライブラリを開発するプロジェクトに取り組むことができますか? それはあなたの同僚がおそらくあなたと一緒に取り組むのに十分興味深いと思う素敵な学習プロジェクトをあなたに与えるでしょう.さらに、あなたはOCamlコミュニティ全体に役立つものを作成することになるでしょう.

于 2009-08-25T03:07:09.913 に答える
2

また、F# を検討することも検討します (特に VS 2010 が出ている場合)。新しい言語の学習は、優れた IDE を使用すると、はるかに簡単で便利になります。F# と OCaml は、他の SO スレッド (例:ここ)でわかるように非常に似ています。

于 2009-08-24T08:04:53.503 に答える