Saya telah meluangkan waktu untuk mempelajari pemrograman fungsional dan saya telah sampai pada bagian di mana saya ingin mulai menulis proyek alih-alih hanya mencoba-coba tutorial / contoh.
Saat melakukan penelitian, saya menemukan bahwa Erlang tampaknya cukup kuat dalam hal menulis perangkat lunak bersamaan (yang merupakan tujuan saya), tetapi sumber daya dan alat untuk pengembangan tidak seatur produk pengembangan Microsoft.
F # dapat berjalan di linux (Mono) sehingga persyaratannya terpenuhi, tetapi ketika mencari-cari di internet saya tidak dapat menemukan perbandingan F # vs Erlang. Saat ini, saya condong ke arah Erlang hanya karena tampaknya memiliki pers paling banyak, tetapi saya ingin tahu apakah benar-benar ada perbedaan kinerja antara kedua sistem.
Karena saya terbiasa berkembang di .NET, saya mungkin bisa mempercepat dengan F # jauh lebih cepat daripada Erlang, tetapi saya tidak dapat menemukan sumber daya apa pun untuk meyakinkan saya bahwa F # sama scalable seperti Erlang.
Saya paling tertarik pada simulasi, yang akan menembakkan banyak pesan yang diproses dengan cepat ke node persisten.
Jika saya belum melakukan pekerjaan dengan baik dengan apa yang saya coba tanyakan, silakan minta verifikasi lebih lanjut.
Jawaban:
Apa yang Anda maksud dengan "viable?" "Memiliki pers yang paling" tidak selalu merupakan cara terbaik untuk memilih bahasa.
Klaim Erlang untuk ketenaran adalah kemampuannya untuk paralelisasi besar-besaran. Itu sebabnya ini biasa digunakan di sakelar telepon Ericsson. Erlang bersifat soft-realtime, sehingga Anda dapat membuat jaminan kinerja tertentu tentangnya.
F # mendapat manfaat dari kemampuan optimalisasi .NET Jitter. Selain itu, bahasa itu sendiri dirancang untuk menjadi bahasa fungsional berkinerja tinggi (itu menjadi varian OCaml, banyak digunakan dalam industri keuangan karena kecepatannya).
Pada akhirnya, kecuali Anda berencana menjalankan jutaan agen kecil pada saat yang sama (untuk itulah Erlang dioptimalkan untuk), F # harus memenuhi tugas.
Halaman ini menjelaskan kasus penggunaan yang sesuai untuk Erlang.
sumber
Beberapa pernyataan objektif dapat dibuat tentang hal ini karena kinerja kedua bahasa ini sangat bergantung pada aplikasi dan gaya pemrograman.
Satu-satunya saran yang dapat saya berikan adalah bahwa F # memiliki keunggulan kinerja sistem tipe statis dan CLR melakukan pekerjaan yang baik memanfaatkan ini untuk meningkatkan kinerja. F # memang memiliki agen dan sinkronisasi pesan yang tidak sinkron tetapi belum dioptimalkan dan kode sinkron seringkali lebih dari 10 × lebih cepat.
Erlang diketik secara dinamis yang menempatkannya pada kerugian yang signifikan dalam hal kinerja (berharap lebih banyak tinju) tetapi dibangun dari bawah ke atas untuk mendukung pengiriman pesan cepat antara agen asinkron sehingga mungkin jauh lebih cepat daripada F # yang setara. . Namun, saya tidak memiliki hasil patokan untuk mendukung ini: itu hanya harapan saya.
Selain itu, baik Erlang dan F # adalah bahasa yang relatif terbatas dengan komunitas kecil dan, karena pasar target yang berbeda, orang yang akrab dengan keduanya jarang. Satu-satunya orang yang bisa saya pikirkan yang hampir memenuhi syarat adalah Jesper Louis Andersen, tetapi saya tidak yakin berapa banyak yang telah dia lakukan.
sumber
Anda harus membaca posting ini oleh Joe Armstrong: http://erlang.org/pipermail/erlang-questions/2012-February/064277.html
Pendeknya adalah bahwa Erlang tidak dirancang untuk menjadi cepat! Ini cukup cepat dalam banyak kasus tetapi itu adalah masalah sekunder seperti toleransi kesalahan dan stabilitas.
Yang benar adalah Erlang dan F # adalah bahasa yang baik, dan sementara saya hanya melihat F # saya telah menulis buku tentang Erlang: Membangun Aplikasi Web Dengan Erlang dan saya dapat mengatakan bahwa itu adalah bahasa yang menyenangkan untuk digunakan.
Saya juga akan menunjukkan bahwa tampaknya ada booming dalam buku-buku bahasa fungsional yang akan diterbitkan dalam 6-9 bulan ke depan. Saya tahu setidaknya 4 tentang Erlang (termasuk milik saya), Satu di Haskell, serta Judul di OCaml, Clojure dan F #.
sumber