Java konusunda 10+ yıllık deneyimim (1.1 sürümünden beri, gerçekten!) Ve .NET'te 7 yıllık deneyimim (çoğunlukla C #) var.
Vereceğiniz çok karar var ama çoğunlukla birkaç senaryoya ayırmaya çalışmalısınız:
Masaüstü uygulaması
Bir masaüstü uygulaması geliştiriyorsanız, çalışacağınız büyük platformla devam etmeniz gerekir. .NET kullanan bir Microsoft platformu ise, ana geminin kendisi tarafından geliştirilen platformdan daha iyi bir çözüm yoktur. Bir Linux veya Çok platformlu senaryo ise Java'yı veya web tabanlı bir çözüme geçmeyi düşünün.
Web Tabanlı Uygulama
Bu, alınması zor bir karar çünkü her birinin kendi gücü ve zayıflığı var. İşte birkaçı:
C #
Güç: Halen, dil ve platform / çerçevede yeni özellikler oluşturma konusunda daha fazla ivme var. Her şey bir satıcıdan geliyor ve kesinlikle bu bir avantaj. Örneğin, DevExpress gibi çok güçlü bileşenleri de kullanabilirsiniz (Java, DX ekibinin yıllar boyunca bir araya getirdiği şey gibi bir şeye yaklaşamayabilir ve bu büyük bir verimlilik artışı anlamına gelir).
Zayıflık: Kurumsal uygulama için .NET, Java kadar olgun değildir. Java'da olduğu gibi .NET'te kurumsal yazılım oluşturan pek çok satıcınız yok.
Java
Güç: Daha olgun (zaten açıklanmış) ve yardımcı olabilecek birkaç açık kaynak kodlu projeye sahip büyük bir topluma sahiptir. Açık kaynaklı projeler olarak adlandırılan bir çok .NET, Java'dan gelen projelerin bir kopyası.
Zayıflık: Oracle'ın Java'ya sahip olduğunu (JCP değil biliyorum) ve bu kesinlikle göz önünde bulundurulması gereken bir risk. Amaçları pek net değil ve ben şahsen dilin şu an nereye gittiğini sevmiyorum (Java geliştiricilerin de benzer endişeleri olduğunu biliyorum).
Sunucu Tarafı Uygulaması
Temelde, Web Tabanlı Uygulamalar ile aynı argümanlardır ancak UI Java için çok fazla endişelenmenize gerek olmadığı için bu durumda güçlenir. Ancak yine de, platform çoğunlukla Windows .NET ise daha iyi bir seçim olabilir.
Genel Hususlar
Genel olarak, benim görüşüme göre, .NET, Visual Studio 2010'un sıkı entegrasyonu (orada en iyi IDE'yi dağıtması), MS SQL, Entity Framework, IIS ve benzeri nedenlerle avantaja sahiptir. Bunların hepsi büyük bir verimlilik artışı sağlıyor ve bunu kanıtlamak için tonlarca tecrübem var. Ayrıca çoğunlukla .NET'e dönüşen Java geliştiricileri ile çalışıyorum ve temelde aynı görüşü paylaşıyorlar.
Microsoft’un her zamankinden daha güçlü olduğunu ve .NET’in bir süre orada olacağı anlamına geldiğini düşünüyorum. Dolayısıyla 10-15 yıl ileriye baktığımda .NET ile Java'dan daha güvenli hissediyorum.