Dün akşam mesai yaparken yeni tanıştığım bir arkadaşım ile ufaktan bu tartışmayı yaptık. Normalde bu tartışmaya hiç girmem fakat karşımdaki kişiyi anlamak için birazcık uzattım.
Yıllardır javacılar ve csharpçılar arasında bitmeyen tartışma söz konusudur.Hangisi daha iyi ? Hadi ana hatlarıyla değerlendirelim.
İkiside yüksek seviye yazılım geliştirmek kullanılan ve tercih edilen dildir. Yüksek seviyeden kasıt ettiğim web ve windows tarzı uygulamalar. Karışık mimarileri ya da business logic dediğimiz iş mantığını çözmek için biçilmiş kaftandırlar.
İkisinin de yazım biçimi birbirine çok benzer. Java, c++ tan etkilenmiş olup, c# ise hem java hem de c++ yazım biçimlerinden etkilenmiştir.
Nesne tabanlı programlama yöntemi, yazılım geliştirme işinin temel taşıdır. Dolayısıyla bu yöntemi desteklemek bir dil açısından önemli bir özellik olacaktır. Hem c# hem de java bunun en iyi örneklerindendir.
Yazılım geliştirme işi komplex bir iştir. Yüzlerce satır kod yazarsınız, mantığını oturtmaya çalışırsınız. Hem java hem c# size sunduğu yardımcı kod kütüphaneleri, api'ler v.s ile sizlere inanılmaz zaman kazandırır. Tekerleği yeniden keşfetmenizi engeller.
Var olmaz mı. Fakat teknik anlamda bunları burada yazıp, yazıyı uzatmak istemiyorum. Aralarındaki farkları şöyle söyleyebiliriz;
Bu konuda java c#'a göre daha taşınabilir halde. Javanın sloganı zaten "write once, run everywhere (bir kere yaz, her yerde çalıştır)" idi. .Net ve c# bunda biraz geri kalsa da son zamanlarda c# arayı iyice kapatmaya başladı diyebiliriz.
.Net ve C# Microsoft Visual Studio'nın dışında pek alternatifi yok gibi. Fakat javanın 4 tane geliştirme ortamı mevcut. Eclipse, IntelliJ IDEA, Oracle NetBeans, and Oracle JDeveloper.
Bu konuda hem java hem de c# kodu yazarak proje geliştirmiş biri olarak c#'ın bu konuda önde olduğunu söyleyebilirim. C#'ın çok daha pratik yöntemleri mevcut. Teknik kısıma girmek istemiyorum fakat merak edenler için çok basit iki örneği söyleyeyim. C#'taki Tupple, Event .Hele ki event olayın java da yapmak için çok uğraşmıştım. (İlk zamanlar) Fakat c# ile bunu tek satırda yapabilirsiniz.
Kazanan yok. Her iki dilde farklılıklar olsa da ikisinin de tek bir amacı var: Genişleyebilir, hızlı, anlaşılır web/windows masaüstü çözümleri geliştirmenizi sağlar. Bunlardan herhangi birini seçmeniz tamamen sizin işinize, projenizin gereksinimlerine bağlı olarak değişir.
Happy coding efenim.. :)