Erlang vs. OCaml (beste Nische zu passen)
Hallo, ich würde gerne abholen einer FP-Sprache (es ist immer ein Schmerz, wenn Sie arbeiten in einer position, die nicht erfordert Sie viel lernen), und nach einigen Forschung, ich fühlte Erlang und OCaml sind die zwei, die ich möchte wirklich, um meine Füße nass aus folgenden Gründen:
1) ich arbeite hauptsächlich auf die hohe Verfügbarkeit von web-server-back-end-system in C++. Ich habe gehört, Erlang ist eine große Korrektur in Bezug auf Skalierbarkeit und Fehlertoleranz. Obwohl ich nicht glaube, dass meine aktuelle Firma wird jedes Projekt in Erlang, ich fühle Erlang werden kann, eine gute Sprache für meine langfristigen beruflichen Entwicklung.
2.) ich habe eine Mitarbeiterin, die ist wirklich gut OCaml, ich meine, er ist wirklich gut (aber er funktioniert nicht, auf, die für seine tägliche Arbeit jetzt. Er unterhält mehrere Bibliothek). Also ich dachte mir, dass er kann eine gute Ressource, wenn ich lernen OCaml.
Meine Interessen sind vor allem auf verteilten Systemen (meine aktuelle Arbeit einige midldle-Software-Entwicklung-Arbeit) und high-performance-computing - (ratet mal, was ich schon ein paar Jahre graduate school Forschung auf, insbesondere PDE in Finanz-Anwendungen-also habe ich immer das Gefühl, ich kann gehen Sie zurück zu tun, einige Finanz-Modellierung arbeiten, vielleicht irgendwann später)
Irgendwelche Vorschläge? Bitte nicht schlagen "lernen", da bin ich nicht so schlau 🙂
Dank
- Ich bin ein Erlang-Programmierer und ich denke, es ist "einfach" zu bauen "realen" Systeme in Erlang. Systeme mit hoher Zuverlässigkeit, Stabilität, Latenz etc. Systeme, die mit vielen Klienten / Kunden und haben noch eine schöne (und einfache Architektur (ich möchte nicht wissen OCaml-obwohl, so dass ich diesen post als Kommentar nur).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ocaml ist eine tolle Sprache-einer meiner Favoriten-aber wenn Ihr Interesse verteilte Systeme als, würde ich empfehlen, geht mit Erlang, die Kopf und Schultern vor den anderen FP-Sprachen im Hinblick auf verteilte Systeme (obwohl es ein Ableger von Ocaml genannt Jocaml die hat einige interessante Aspekte).
Ocaml ist schwächer, auch wenn Sie nur Blick auf Parallelität, angesichts seiner zugrunde liegenden Architektur. Sowohl Haskell und Clojure haben die besseren Geschichten hier, imho. (Das heißt: sobald Sie einen FP-Sprache, werden Sie in der Lage, die grundlegenden Prinzipien zu anderen Sprachen ziemlich einfach, und Sie könnten nützlich sein in der Zukunft. Sowohl Scala-und Clojure könnte leicht schleichen sich Ihren Weg in die Organisationen, die aufgrund der JVM.)
Ich denke, Ocaml ist eine großartige Möglichkeit für den Einstieg in FP, und Erlang ist nicht sehr schwierig, sobald Sie die basic-FP-Konzepte nach unten.
Aber den Vorschlag von 'aneccodeal' ist fantastisch-also, wenn Sie interessiert sind in Ocaml und habe einen Freund, der ist bereits stark in ihm, mit allen Mitteln zu entwickeln, die eine Parallelität (vielleicht MPI) - Bibliothek für Sie.
Halten Sie im Verstand, jedoch, dass man die Hindernisse zu machen, Ocaml Auger ist das fehlen der gleichzeitigen garbage collection (oder so habe ich gelesen).
Wenn Sie ein co-Arbeiter, der "wirklich gut" mit OCaml dann es klingt wie Sie haben eine große Ressource, vorausgesetzt, dass er/Sie bereit ist, Ihre Fragen zu beantworten. Es ist immer leichter zu lernen, wenn es jemanden kompetenten um, dass Sie Fragen stellen können, wenn Sie nicht weiterkommen.
Ja, es ist wahr, dass OCaml nicht die beste Geschichte, wenn es um die Parallelität, aber es gibt Möglichkeiten, um die Parallelität in OCaml (Gabel-basiert zu sein scheint, die meisten common - checkout-Auftakt.ml umfasst Dinge wie parallel anzeigen: http://github.com/kig/preludeml/tree/master ). Auch scheint es, dass Erlang die Schauspieler-basierten concurrency-ist eigentlich Recht einfach zu duplizieren in anderen Sprachen. Vielleicht sind Sie und Ihr co-worker arbeiten konnte ein Projekt zur Entwicklung eines Schauspieler-basierten concurrency-Bibliothek für OCaml? Das würde Ihnen einen schönen learning-Projekt, dass Sie co-Arbeiter würde wahrscheinlich interessant genug, um die Arbeit mit dir... außerdem könnten Sie am Ende etwas zu schaffen, was nützlich für die gesamte OCaml-Gemeinschaft.
Ich würde auch in Betracht ziehen, betrachten F# (insbesondere bei VS 2010 ist aus).
Eine neue Sprache zu lernen ist viel leichter und bequemer, mit einer netten IDE.
F# und OCaml sind sehr ähnlich, wie Sie sehen können, in anderen threads (z.B. hier)