Saya memiliki 10+ tahun pengalaman dengan Java (sejak versi 1.1, sungguh!) Dan 7 tahun pengalaman dengan .NET (kebanyakan C #).
Anda memiliki keputusan yang harus diambil, tetapi sebagian besar Anda harus mencoba memecah menjadi beberapa skenario:
Aplikasi Desktop
Jika Anda sedang mengembangkan aplikasi desktop, Anda harus menggunakan platform utama yang akan Anda gunakan. Jika menggunakan platform Microsoft .NET, tidak ada solusi yang lebih baik daripada platform yang dikembangkan oleh kapal induk itu sendiri. Jika itu adalah skenario Linux atau Multi-platform, pertimbangkan Java atau pindah ke solusi berbasis web.
Aplikasi Berbasis Web
Ini adalah keputusan yang sangat sulit untuk dibuat karena masing-masing memiliki kekuatan dan kelemahan mereka sendiri. Berikut beberapa di antaranya:
C #
Kekuatan: Saat ini memiliki lebih banyak momentum dalam membangun fitur-fitur baru ke dalam bahasa dan platform / kerangka kerja. Semuanya berasal dari satu vendor dan tentunya ini merupakan keuntungan. Anda juga dapat menggunakan beberapa komponen yang sangat kuat seperti DevExpress misalnya (Java bahkan tidak mendekati untuk memiliki sesuatu seperti apa yang telah disatukan oleh tim DX selama bertahun-tahun dan ini merupakan peningkatan produktivitas yang sangat besar).
Kelemahan: Untuk aplikasi enterprise .NET tidak setua Java. Anda tidak memiliki banyak vendor yang membangun perangkat lunak perusahaan di .NET seperti yang Anda miliki untuk Java.
Jawa
Kekuatan: Lebih dewasa (sudah dijelaskan) dan memiliki komunitas besar dengan beberapa proyek open source hebat yang dapat membantu. Beberapa .NET yang disebut proyek sumber terbuka benar-benar hanyalah salinan dari proyek-proyek dari Jawa.
Kelemahan: Oracle memiliki Java (saya tahu, bukan JCP) dan itu jelas risiko yang harus dipertimbangkan. Niat mereka tidak terlalu jelas dan saya pribadi tidak suka ke mana bahasa ini sekarang (saya tahu banyak pengembang Java memiliki masalah serupa).
Aplikasi Sisi Server
Ini pada dasarnya argumen yang sama dengan Aplikasi Berbasis Web tetapi karena Anda tidak perlu terlalu khawatir tentang UI Java semakin kuat dalam hal ini. Tetapi sekali lagi, jika platform sebagian besar Windows. NET mungkin menjadi pilihan yang lebih baik.
Pertimbangan Keseluruhan
Secara keseluruhan, menurut pendapat saya, .NET memiliki keunggulan terutama karena integrasi yang ketat dari Visual Studio 2010 (menyerahkan IDE terbaik di luar sana), MS SQL, Entity Framework, IIS dan sebagainya. Ini semua mewakili peningkatan produktivitas yang sangat besar dan saya punya banyak pengalaman membuktikannya. Saya juga bekerja dengan sebagian besar pengembang Java yang beralih ke .NET dan pada dasarnya mereka berbagi pendapat yang sama.
Saya pikir itu juga poin yang baik bahwa Microsoft lebih kuat dari sebelumnya. NET akan ada di sana untuk sementara waktu. Jadi ketika melihat 10-15 tahun ke depan saya merasa lebih aman dengan .NET daripada Java.