2009-08-21 13 views
17

こんにちは私はFP言語を拾いたいと思っています(多くのことを学ぶ必要がないポジションで働くときはいつも痛みます)。Erlang vs OCaml(最適なニッチ)

1)私は主にC++の高可用性Webサーバーバックエンドシステムで作業しています。これは、次の理由でErlangとOCamlが私の足を濡らしたいと思う2つのものです。私はErlangがスケーラビリティとフォールトトレランスの大きな問題であると聞きました。私の現在の会社はErlangでどんなプロジェクトも持っているとは思えませんが、私はErlangが私の長期キャリア開発のための良い言語かもしれないと感じています。

2)私はOCamlを本当にうまく使っている同僚がいます。彼は本当に上手です(しかし、彼は毎日の仕事のために今は働いていません。だから私は彼がOCamlを学ぶなら、彼が良いリソースかもしれないと思った。

私の興味は主に分散システム(私の現在の仕事は中規模の開発作業です)と高性能コンピューティングです(私は数年の大学院の研究、特に金融アプリケーションのPDE - 私はいつも、後でいつかいくつかのファイナンスモデリング作業をやり直すことになるかもしれないと感じました)

何か提案がありますか?私のお気に入りの一つ - - 私は、スマート:-)ないですようOCamlは偉大な言語です

おかげ

+0

私はErlangのプログラマーです。私はErlangで "本当の"システムを構築するのは簡単だと思います。信頼性、安定性、待ち時間などのシステムがあります。多くのクライアント/顧客を扱うことができ、まだまだシンプルなアーキテクチャーがあります(OCamlについてはわかりませんので、コメントとして投稿しています)。 –

答えて

6
に、「両方学ぶ」

を提案しないでくださいしかし、あなたの興味は私よりもシステムを分散されている場合Erlangは、分散システムに関しては他のFP言語よりも前にある頭と肩になることをお勧めします(興味深い面があるJocamlというOcamlの派生物があります)。

Ocamlは、その基本アーキテクチャを考慮して、並列性だけを見ていても弱いです。 HaskellとClojureの両方がここでより良い物語を持っています。 (言い換えれば、一度FP言語を取得すれば、基本原理を他の言語に簡単に移植することができ、将来的には役立つかもしれません。ScalaとClojureの両方は、

2

また、F#(特にVS 2010が出ているとき)を見てみることにします。 素敵なIDEを使って、新しい言語を学ぶのがはるかに簡単で便利です。 F#とOCamlは、他のSOスレッドと同様のものです(例:here

3

OCamlで "本当に良い"同僚がいるなら、彼はあなたの質問にお答えします。あなたが困っているかどうかの質問をすることができる知識のある人がいれば、いつでもより簡単に学ぶことができます。

はい、OCamlには並列性に関しては最高の話はありませんが、OCamlで並列処理を行う方法があります(フォークベースが最も一般的です - checkout prelude.mlには次のようなものがあります平行地図:http://github.com/kig/preludeml/tree/master)。また、ErlangのActorベースの並行処理は他の言語でもかなり簡単に複製できるようです。あなたとあなたの同僚は、OCamlのアクターベースの並行性ライブラリを開発するプロジェクトで作業することができますか?そうすれば、共同作業者があなたと仕事をするのに十分興味深いと感じる良い学習プロジェクトが得られます...さらにOCamlコミュニティ全体にとって有益なものを作ることになります。

5

私はOcamlがFPで始めるのに最適な方法だと思います。Erlangは、基本的なFPの概念を理解してからは難しくありません。

しかし、「aneccodeal」の提案は素晴らしいです。つまりあなたがOcamlに興味を持ち、既に強力な友人を持っているなら、是非、そのための並行性(たぶんMPI)ライブラリを開発してください。

しかし、Ocamlを同時に実行する上での障壁の1つは、同時のガベージコレクションがないことです(または読んでいます)。

関連する問題