C # veya Java'nın diğerinin önünde olup olmadığı sorusu tartışmaya açık, ama birinin veya diğerinin dil özelliklerine odaklanmak yerine, bir dili geliştirmeyle ilgili olanlara odaklanmayı tercih ederim . Kimsenin tartışacağını sanmıyorum bir gerçek: Java C # daha eski.
Bir dilin çalışma şeklini değiştirme ile ilgili sorunlar:
- Geriye dönük uyumluluğu bozursanız birçok geliştiriciyi kızdırırsınız
- Geliştiricilerinizi kızdırırsanız, onları daha iyi destekleyen başka bir dile geçer. Bu nedenle, dil ile çalışmaya devam etmek için hiçbir neden yoktur.
- Java, dili pazara sunma baskısı ile tasarım kararlarını erkenden aldı. Umut geri dönüp boşlukları doldurmaktı. Bu kararlar hala dili rahatsız ediyor çünkü koruyucular ilk noktayı ihlal etmek istemiyorlar.
- Java birçok yeni bölgeyi alevlendirdi ve bir kez ve her şey için çöp toplanan bir dilin ciddiye alınabileceğini kanıtladı - ve çoğu insan için yeterince iyi performans gösterdi.
- C # daha sonra geldi ve Java'nın tökezlediği birçok ders öğrendi - böylece Java'nın 3. noktadan dolayı sahip olduğu bazı teknik sınırlamalardan kaçınabildiler.
- Yeni dil özellikleri gerçek bir sorunu mantıklı bir şekilde çözmelidir. Her dil özelliği, eklemeye çalıştığınız dil bağlamında anlamlı değildir. Bu nedenle, benzerliklerine rağmen, Java ve C # farklı diller olmaya devam edecektir.
Peki, C #, Java'dan daha fazla dil özelliğine sahip mi? Bence de. Yararlı mı? Bence de. Bu C # Java daha iyi veya daha olgun olduğu anlamına mı geliyor? Buna katılmıyorum. Farklı, sade ve basit. Java hiçbir zaman C # 'ın tüm özelliklerine sahip olmayacaktır çünkü C # hiçbir zaman tüm Java özelliklerine sahip olmayacaktır.
Java'nın özelliklerinden biri olan, Windows'ta bir program yazma ve Unix veya Mac'e dağıtma yeteneği, hiçbir zaman doğrudan Microsoft'un desteği ile gerçekleşmez. Neden soruyorsun? Microsoft kötü olduğu için değil (bu doğru olsun ya da olmasın ben gerçekten umurumda değil). Çünkü Sun'ın hiç yapmadığı bir ders öğrendiler: herhangi bir yerde çalıştırıldığında yazmak işletim sistemlerini ve donanımı metalaştırır. İşletim sisteminizin satışlarından para kazanmayı önemsiyorsanız, takas yapmayı ve hala bir uygulama çalışmasını önemsiz hale getirmek istemezsiniz. Bunu yaptıysanız, her zaman daha ucuz seçenekler olduğu için işletim sisteminden kar edemezsiniz.