2009-08-21 29 views
17

Xin chào Tôi muốn nhận một ngôn ngữ FP (nó luôn luôn là một nỗi đau khi bạn làm việc ở một vị trí mà không yêu cầu bạn học nhiều), và sau khi thực hiện một số nghiên cứu, tôi cảm thấy Erlang và OCaml là hai người mà tôi thực sự muốn bị ướt chân vì những lý do sau:Erlang vs OCaml (thích hợp nhất để phù hợp)

1) Tôi làm việc chủ yếu trên hệ thống máy chủ web có tính sẵn sàng cao trong C++. Tôi nghe nói Erlang là một sửa chữa lớn trong khả năng mở rộng và khả năng chịu lỗi. Mặc dù tôi không nghĩ rằng công ty hiện tại của tôi sẽ có bất kỳ dự án nào ở Erlang, tôi cảm thấy Erlang có thể là một ngôn ngữ tốt cho sự phát triển nghề nghiệp lâu dài của tôi.

2) Tôi có một đồng nghiệp thực sự giỏi ở OCaml, tôi có nghĩa là anh ấy rất giỏi (nhưng anh ấy không làm việc đó cho công việc hàng ngày của mình bây giờ. Anh ấy duy trì một số thư viện). Vì vậy, tôi nghĩ rằng anh ấy có thể là một nguồn lực tốt nếu tôi học OCaml.

Sở thích của tôi chủ yếu dựa trên hệ thống phân phối (công việc hiện tại của tôi là công việc phát triển đồ dùng ở giữa) và tính toán hiệu suất cao (đoán xem, tôi có một vài năm nghiên cứu sau đại học về nó) - vì vậy tôi luôn cảm thấy tôi có thể quay lại để thực hiện một số công việc lập mô hình tài chính đôi khi sau)

Bất kỳ đề xuất nào? Xin đừng đề nghị "học cả", như tôi không phải là :-) rằng thông minh

Cảm ơn

+0

Tôi là một lập trình viên Erlang và tôi nghĩ rằng đó là "dễ" để xây dựng các hệ thống "thực" trong Erlang. Hệ thống có độ tin cậy cao, ổn định, độ trễ… Hệ thống có thể xử lý nhiều khách hàng/khách hàng và vẫn có kiến ​​trúc đơn giản và đẹp mắt (tôi không biết về OCaml, vì vậy tôi chỉ đăng bài này làm bình luận). –

Trả lời

6

Ocaml là một ngôn ngữ tuyệt vời - một trong những yêu thích của tôi - nhưng nếu quan tâm của bạn được phân phối hệ thống hơn tôi 'd khuyên bạn nên đi với Erlang, đó là đầu và vai phía trước của các ngôn ngữ FP khác liên quan đến hệ thống phân phối (mặc dù có một nhánh của Ocaml gọi là Jocaml trong đó có một số khía cạnh thú vị).

Ocaml yếu hơn ngay cả khi chỉ nhìn vào song song, với kiến ​​trúc cơ bản của nó. Cả Haskell và Clojure đều có những câu chuyện hay hơn ở đây, imho. (Điều đó nói rằng: một khi bạn nhận được một ngôn ngữ FP, bạn sẽ có thể mang các nguyên tắc cơ bản cho các ngôn ngữ khác khá dễ dàng, và chúng có thể hữu ích trong tương lai. Cả Scala và Clojure đều có thể dễ dàng lẻn vào các tổ chức nhờ JVM.)

2

Tôi cũng cân nhắc xem xét F # (đặc biệt là khi VS 2010 hết hạn). Học một ngôn ngữ mới dễ dàng hơn và thuận tiện hơn với một IDE đẹp. F # và OCaml rất giống như bạn có thể nhìn thấy trong SO đề khác (ví dụ here)

3

Nếu bạn có một đồng nghiệp người là "thực sự tốt" với OCaml sau đó có vẻ như bạn có một nguồn lực lớn giả định rằng s/anh ấy sẵn sàng trả lời các câu hỏi của bạn. Nó luôn luôn dễ dàng hơn để tìm hiểu khi có ai đó am hiểu xung quanh rằng bạn có thể đặt câu hỏi nếu bạn gặp khó khăn.

Có đúng là OCaml không có câu chuyện hay nhất khi nói đến song song, nhưng có nhiều cách để có được tính song song trong OCaml (dựa trên ngã ba có vẻ là prelude.ml thanh toán phổ biến nhất bao gồm những thứ như bản đồ song song: http://github.com/kig/preludeml/tree/master). Ngoài ra, có vẻ như đồng thời dựa trên diễn viên của Erlang thực sự khá dễ dàng để sao chép bằng các ngôn ngữ khác. Có lẽ bạn và đồng nghiệp của bạn có thể làm việc trên một dự án để phát triển một thư viện đồng thời dựa trên Actor cho OCaml? Điều đó sẽ cung cấp cho bạn một dự án học tập tốt đẹp mà bạn đồng nghiệp có thể sẽ tìm thấy đủ thú vị để làm việc với bạn ... ngoài ra bạn có thể sẽ tạo ra một cái gì đó hữu ích cho toàn bộ cộng đồng OCaml.

5

Tôi nghĩ Ocaml là một cách tuyệt vời để bắt đầu trong FP, và Erlang không phải là rất khó khăn khi bạn có các khái niệm cơ bản về FP.

Nhưng đề xuất từ ​​'aneccodeal' thật tuyệt vời-- tức là, nếu bạn quan tâm đến Ocaml và có một người bạn đã mạnh mẽ trong nó, bằng mọi cách phát triển một thư viện đồng thời (có lẽ là MPI) cho nó.

Tuy nhiên, xin lưu ý rằng một trong những rào cản làm cho Ocaml đồng thời là thiếu bộ sưu tập rác đồng thời (hoặc vì vậy tôi đã đọc).

Các vấn đề liên quan