Tidak hanya layak, tetapi benar-benar bagus, dalam pengalaman saya. Saya telah mengembangkan beberapa server MMO menggunakan C #, dan saya harus mengatakan saya tidak pernah menyesali pilihan bahasa dan platform.
Ada banyak perpustakaan besar dan alat untuk C # dan. NET secara umum - jaringan, logging, pemetaan O / R, dll. Dan, dibandingkan dengan Java C # lebih ekspresif dan kurang bertele-tele (beberapa orang mungkin berdebat tentang ini, meskipun .. )
"Overhead" GC yang membuat takut beberapa orang sebenarnya bukan masalah, kecuali jika Anda menyalahgunakannya dengan miliaran alokasi per detik. Sebagai contoh, server kami saat ini mengalokasikan hingga 50 mb / detik di bawah beban berat, dan GC tidak memperkenalkan kelambatan yang terlihat. Kami memang harus menggunakan pengumpulan objek di tempat-tempat strategis, namun - yang paling penting, objek yang mewakili paket jaringan dikumpulkan dan tidak dikumpulkan oleh sampah. Namun, bahkan dengan pooling dimatikan, GC bukan masalah terbesar.
Sebagai contoh betapa kerennya C #, inilah yang baru-baru ini kami terapkan. Server kami menjalankan beberapa layanan WCF, yang digunakan klien game untuk tugas-tugas non-waktu-kritis, dan kami juga menggunakannya untuk administrasi server. Ternyata, sangat mudah untuk membuat layanan WCF untuk hanya mengembalikan objek permainan kami ke pemanggil. Jadi kami melakukan hal itu, lalu membuat plugin kecil untuk LINQPad yang terhubung ke server kami - dan sekarang kita dapat menjalankan kueri seperti
from character in Service.GetOnlineCharacters()
where character.LocationManager.LocationId==5 && character.Attributes.Level<10
select new { character.Id, character.Nick }
Di server langsung, tidak kurang! Saya tidak berpikir Anda bisa melakukan ini dengan platform lain. Setidaknya tidak dalam pekerjaan beberapa hari.