Kinerja - Merata
Kedua platform berkinerja sangat baik untuk hampir semua aplikasi.
Tidak terlalu membedakan mereka, meskipun pengalaman subjektif saya adalah bahwa Java memiliki sedikit keunggulan untuk aplikasi yang berjalan lama, sedangkan .Net lebih cepat untuk waktu startup aplikasi.
Alat yang tersedia (bahkan alat pihak ke-3) - Debatable
Tergantung pada alat apa yang Anda butuhkan dan apa yang Anda kenal.
Net tentu saja memiliki beberapa alat hebat yang disediakan oleh Microsoft. Di sisi lain, ada alat yang sama baiknya di dunia Java misalnya di Eclipse, Netbeans of IntelliJ environment.
Kompatibilitas lintas platform - Java win
.Net secara fundamental terkait dengan platform Microsoft (Windows, Xbox, dll.). Implementasi lengkap tidak tersedia untuk platform non-Microsoft .
Mono bagus, tetapi sebenarnya tidak memberi Anda kemampuan lintas platform penuh karena tidak mendukung semua perpustakaan .Net (misalnya, Anda tidak dapat mengharapkan semua hal Windows GUI berfungsi dengan benar, jadi kecuali Anda beralih ke toolkit lintas-platform seperti GTK # Anda tidak akan dapat menjalankan aplikasi di berbagai platform)
Java benar-benar portabel. Bukan hanya bahasa, tetapi jauh lebih penting semua perpustakaan Java portabel. Memberikan Anda tetap pada pustaka Java murni (misalnya Swing untuk GUI) maka kode Anda akan berjalan di mana pun Anda memiliki lingkungan Java runtime.
Perpustakaan (terutama perpustakaan pihak ketiga) - Java menang
Mungkin kekuatan terbaik dari platform Java adalah ekosistem perpustakaan yang luas, terutama perpustakaan open source. Beberapa contoh:
- Semua perpustakaan dan alat Apache
- Semua perpustakaan di ekosistem Eclipse yang luas
- Semua perpustakaan dikontribusikan / dikelola oleh Google
- JBoss dan semua alat perusahaan terkait dikelola oleh Red Hat
Biaya (Oracle tampaknya mencoba dan memonetisasi Java) - Java menang jika Anda menggunakan open source, jika tidak Even.
Anda dapat memiliki tumpukan Java open source 100% yang gratis dan tidak mengikat Anda ke platform berpemilik tertentu. Ini 100% gratis.
Sebagai alternatif, Anda dapat membeli IntelliJ IDEA, menjalankan Java pada Windows dan menggunakan database berpemilik, dalam hal ini harganya hampir sama dengan biaya seperti tumpukan Microsoft .NET biasa.
Proses pengembangan (termudah / tercepat) - Debatable
Ini mungkin lebih tergantung pada pengalaman pengembang Anda dengan setiap platform daripada atribut khusus dari platform tersebut.
Net tentu saja memiliki beberapa alat hebat yang dapat membuat Anda sangat produktif untuk aplikasi GUI sederhana di Windows. Tidak mengherankan karena ini adalah "sweet spot" untuk pengembangan .Net.
Di sisi lain, saya lebih suka tumpukan Java untuk pengembangan sisi server. Dengan alat-alat seperti Maven dan semua kemampuan penyebaran / integrasi berkelanjutan Anda dapat membangun proses pengembangan yang sangat efektif untuk aplikasi sisi server yang tangguh.
Dari segi bahasa, C # memiliki beberapa keunggulan produktivitas dibandingkan Java. Tetapi di sisi lain jika Anda mengembangkan platform Java saat ini, trennya bukan menggunakan Java itu sendiri melainkan menggunakan salah satu bahasa JVM baru seperti Scala, Groovy atau Clojure - jika Anda melakukannya maka Anda akan jauh lebih produktif daripada C # atau Java.