Performans - Eşit
Her iki platform da neredeyse tüm uygulamalar için son derece iyi performans gösteriyor.
Bunları birbirinden ayırmak için çok fazla değil, ancak öznel deneyimim, Java'nın uzun süre çalışan uygulamalar için hafif bir kenara sahip olmasına rağmen, .Net uygulama başlatma süresi için daha hızlı.
Mevcut araçlar (3. taraf araçlar bile) - Tartışılabilir
İhtiyacınız olan araçlara ve neye aşina olduğunuza bağlıdır.
Net kesinlikle Microsoft tarafından sağlanan bazı harika araçlara sahiptir. Öte yandan, Java dünyasında eşit derecede iyi araçlar vardır, örneğin Eclipse, IntelliJ ortamlarının Netbeans'i.
Çapraz platform uyumluluğu - Java win
Net temel olarak Microsoft platformlarına (Windows, Xbox vb.) Bağlıdır. Microsoft dışındaki platformlar için tam uygulamalar kullanılamaz .
Mono güzel, ancak tüm .Net kitaplıklarını desteklemediği için size tam bir platformlar arası yetenek sağlamaz (örneğin, tüm Windows GUI öğelerinin düzgün çalışmasını bekleyemezsiniz, bu nedenle, GTK # gibi bir platformlar arası araç seti, uygulamanızı farklı platformlarda çalıştıramazsınız)
Java gerçekten taşınabilir. Sadece dil değil, daha da önemlisi tüm Java kütüphaneleri taşınabilir. Saf Java kitaplıklarına (örn. GUI için Swing) bağlı kalmanızı sağlayarak, kodunuz bir Java çalışma zamanı ortamınızın olduğu her yerde çalışır.
Kütüphaneler (özellikle 3. taraf kütüphaneler) - Java win
Muhtemelen Java platformunun en iyi gücü, kütüphanelerin, özellikle açık kaynak kütüphanelerin geniş ekosistemidir. Bazı örnekler:
- Tüm Apache kütüphaneleri ve araçları
- Geniş Eclipse ekosistemindeki tüm kütüphaneler
- Google tarafından katkıda bulunan / sürdürülen tüm kütüphaneler
- JBoss ve Red Hat tarafından sağlanan tüm ilgili kurumsal araçlar
Maliyet (Oracle Java'yı deniyor ve para kazanmaya çalışıyor gibi görünüyor) - Açık kaynak koda giderseniz Java kazanır, aksi halde Çift.
Ücretsiz ve sizi herhangi bir tescilli platforma bağlamayan% 100 açık kaynaklı bir Java yığınına sahip olabilirsiniz. Bu% 100 ücretsizdir.
Alternatif olarak, IntelliJ IDEA'yı satın alabilir, Windows'ta Java çalıştırabilir ve özel bir veritabanı kullanabilirsiniz; bu durumda, tipik bir Microsoft .NET yığını ile hemen hemen aynı maliyetlidir.
Geliştirme süreci (En Kolay / En Hızlı) - Tartışılabilir
Bu büyük olasılıkla, geliştiricilerinizin platforma atfedilenlerden ziyade her platformla ilgili deneyimlerine bağlıdır.
.Net, Windows'ta basit GUI uygulamaları için sizi çok verimli hale getirebilecek bazı harika araçlara sahiptir. Bu şaşırtıcı değil. Net geliştirme için "tatlı nokta".
Öte yandan, sunucu tarafı geliştirme için Java yığınını tercih ederim. Maven gibi araçlarla ve tüm sürekli dağıtım / entegrasyon yetenekleriyle, sağlam sunucu tarafı uygulamaları için çok etkili bir geliştirme süreci oluşturabilirsiniz.
Dil açısından C #, Java'ya göre bazı verimlilik avantajlarına sahiptir. Ancak diğer yandan, bugünlerde Java platformunda gelişiyorsanız, trend Java'nın kendisini değil, Scala, Groovy veya Clojure gibi yeni JVM dillerinden birini kullanmaktır - bunu yaparsanız çok daha üretken olacaksınız. C # veya Java'dan daha fazla.