Saya telah melihat akka baru-baru ini dan itu cukup mengesankan. Sepertinya ia memiliki sebagian besar fitur mematikan erlang - transparansi lokasi, hierarki pengawasan, dan banyak lagi. Apakah ada fitur erlang yang tidak dimiliki akka?
Saya telah melihat akka baru-baru ini dan itu cukup mengesankan. Sepertinya ia memiliki sebagian besar fitur mematikan erlang - transparansi lokasi, hierarki pengawasan, dan banyak lagi. Apakah ada fitur erlang yang tidak dimiliki akka?
Jawaban:
Penafian: Saya PO untuk Akka
Itu yang ada di atas kepalaku.
Di sisi lain, menggunakan Akka berarti Anda dapat menggunakan Scala, Java, Groovy, atau JRuby untuk menulis aplikasi Anda.
Dalam proses Erlang dijamin akan beralih kira-kira setiap 1000 pengurangan. Dalam kerangka kerja naif seperti agen Scala / Akka memiliki penjadwal hingga menyelesaikan pekerjaan dalam penerimaan. Sekakmat. Tamat. Hasta la vista :) Teman-teman, jangan buang waktumu untuk pseudo techs. Saya terkejut bahwa orang-orang di sini membandingkan Scala dengan Erlang.
Juga ada banyak lagi yang disebut "fitur pembunuh", tapi di sini saran saya, jangan berpikir dari segi fitur, pikirkan tentang idiom yang memungkinkan bahasa tertentu. Scala mencuri "fitur terbaik", Erlang mengaktifkan / mengimplementasikan Anda dengan idiom yang tepat untuk membangun sistem dengan andal, dengan bahasa tingkat tinggi yang didorong dari idiom yang benar tersebut. Ketika Anda belajar Erlang Anda membangun kembali pikiran Anda, cara berpikir Anda tentang sistem yang dapat diandalkan didistribusikan, Erlang mengajarkan Anda dan meningkatkan Anda. Scala hanyalah salah satu bahasa imperatif (oh, maaf, multiparadigmal, kata lucu) yang mencoba mencuri fitur bagus dari bahasa lain.
Hampir tidak ada yang menyebutkan isolasi proses. Tanpa jaminan "utas Anda tidak dapat mengacaukan sampah saya", sistem terdistribusi jauh lebih sulit untuk dipikirkan. (Mereka sudah cukup sulit dengan proses Erlang.)
AFAIK (yang tidak jauh, mengingat pengalaman langsung saya yang terbatas dengan JVM), hanya Erlang yang benar-benar mendapatkan proses isolasi "benar" di JVM. Tuan Google dapat memberikan beberapa petunjuk tentang di mana menemukan penelitian oleh Fox dan Candea (?) Tentang sistem penelitian yang menggunakan teknik "mikro-reboot" ("komputasi berorientasi pemulihan"). Pengembang Erlang membaca penelitian itu dan mengatakan beberapa hal:
Bagi saya, pertukaran kode panas di seluruh klaster Erlang tanpa waktu henti (misalnya make:all([netload]
:) adalah salah satu fitur pembunuh Erlang.
Tapi mari kita balikkan pertanyaan Anda: Akka memiliki apa yang tidak dimiliki Erlang? Tentu saja Anda dapat menambahkan lusinan ekstensi dan pustaka (scala, akka, spring, osgi, ...) ke Java untuk mencoba mendekati Erlang. Tapi di mana gunanya? Singkatnya, semua ekstensi ini jauh lebih kompleks daripada mempelajari bahasa Erlang sederhana yang sekarang telah terbukti selama lebih dari 2 dekade bahwa ia dapat melakukan pekerjaan yang menawarkan skalabilitas teratas tanpa waktu henti.
Mungkin Erlang lebih baik untuk sistem terdistribusi yang lebih besar (mengikuti jawaban vjache) tetapi untuk server normal ketika Anda hanya ingin menggunakan kekuatan penuh dari beberapa CPU, maka Akka adalah pilihan yang baik— menyediakan abstraksi, kinerja, dan integrasi yang baik dengan ekosistem Java.