Saya ingin memulai proyek eksperimental menggunakan bahasa fungsional dan saya mencoba untuk memutuskan antara Erlang dan Haskell, dan keduanya memiliki beberapa poin yang sangat saya sukai.
Saya suka sistem dan kemurnian tipe Haskell yang kuat. Saya merasa itu akan membuatnya lebih mudah untuk menulis kode yang benar-benar andal. Dan saya pikir kekuatan Haskell akan membuat beberapa hal yang ingin saya lakukan menjadi lebih mudah.
Di sisi minus saya merasa bahwa beberapa Kerangka untuk melakukan hal-hal web di Haskell seperti Yesod tidak semaju suku cadang Erlang mereka.
Saya lebih suka pendekatan Erlang untuk thread dan toleransi kesalahan. Saya merasa bahwa skalabilitas Erlang bisa menjadi nilai tambah utama.
Yang mengarah ke pertanyaan saya, apa pengalaman orang dalam menerapkan aplikasi web backend di Haskell dan Erlang. Apakah ada paket untuk Haskell untuk menyediakan beberapa utas dan aktor ringan yang dimiliki seseorang di Erlang?
sumber
Jawaban:
Satu-satunya pertanyaan yang saya miliki adalah apa yang dilakukan layanan web Anda? Jika layanan web benar-benar masalah fungsional, maka Haskell akan lebih cocok.
Erlang belum tentu merupakan bahasa fungsional. Ini adalah bahasa prosedural dengan model eksekusi yang sangat kuat untuk sistem paralel masif. Itu dirancang untuk industri telekomunikasi, dan itu pasti akan sangat cocok untuk menanggapi permintaan layanan web.
Lihat halaman ini * untuk ikhtisar perbedaan antara pemrograman prosedural dan fungsional. (Permintaan maaf sebelumnya untuk hitam jelek di halaman cyan).
Jika layanan web Anda melakukan cukup banyak pola yang cocok dan menerapkan aturan, maka Haskel adalah pilihan Anda. Jika Anda hanya ingin infrastruktur terukur yang tidak terlalu berbeda dari bahasa yang Anda mungkin sudah tahu, pilih Erlang.
(* tautan melalui mesin Wayback. File asli telah dihapus)
sumber
Di antara keduanya yang Anda sebutkan, pasti Haskell adalah akademis, sementara Erlang digunakan dalam proyek skalabilitas tinggi kehidupan nyata. Jadi dari dua untuk layanan web saya akan memilih Erlang.
Tapi saya katakan Anda memiliki pilihan ketiga: Scala , sebuah bahasa yang sangat dipengaruhi oleh Haskell dan Erlang. Ini digunakan untuk membangun layanan web terbaik seperti Twitter atau Foursquare. Bahkan ada Lift , kerangka kerja web yang terinspirasi oleh Rails dan Django, meskipun dengan sedikit berbeda, pendekatan yang lebih fungsional. Foursquare menggunakan Lift.
sumber
Biasanya saya katakan: "pelajari hal-hal sejauh mungkin dari zona nyaman Anda, itu akan membuat Anda menjadi programmer yang lebih baik bahkan jika Anda tidak pernah menggunakannya dalam praktik".
Dalam hal ini, itu mungkin bisa berarti Haskell; tetapi Erlang tidak hanya menjadi hampir dapat diterima secara sosial; tetapi poin utama (proses yang ringan, pengiriman pesan, skalabilitas yang sangat besar) datang pada banyak platform 'praktis' lainnya, sehingga pelajaran yang dipetik memiliki penerapan yang besar dan langsung pada pekerjaan yang lebih 'nyata'.
saran saya: jika itu untuk bersenang-senang, lakukan Haskell. jika itu untuk pelatihan, pergi Erlang.
sumber