Yazılım endüstrisinde en çok karşılaştırılan ve konuşulan konulardan biriside Java mı Python mu daha iyi olduğu ve yeni başlayanlar içinse Java ile mi yoksa Python ile mi başlamalıyım sorusudur. Özellikle e-ticaret projelerinde Java mı Python mu daha iyi olduğu sorusunada cevap arayalım. Örneklerle beraber Java ve Python arasındaki farkları özetleyelim.
E-Ticaret’te Java mı Python mu
E-ticaret ve ödeme kuruluşları açısından baktığımızda arayüz tarafında önem arz eden front-end diline göre en uyumlu ve en performanslı dil tercih edilmesi gerekir. Günümüzde artık her işlemin web tabanlı ortamda gerçekleşmesi ve konumuzu ilgilendiren durumu göz önüne alırsak, Python’un Django, Flask ve Fastapi frameworkleri oldukça performanslı, kolay ve tercih edilen bir yapı olduğunu görmek mümkündür. Java’da ise Spring framework ve benzerleri sık tercih edilsede, yerleşmiş Java kültürü olmayan firmaların yeni projelerinde kullanılan bir dil olduğunu söylemek biraz güç olur, daha çok yerleşmiş Java kültürü olan kurumsal firmalar yeni projelerinde tercih etmektedirler. Bu noktada her iki dil arasında Python’un bir adım “ileriye koştuğunu” söyleyebiliriz.
Hız ve Performans
Her iki dili kullanan yazılımcılar, kullandığı dilin daha hızlı olduğunu belirtse de her iki dilde benzer performans göstermektedir. Python yorumlanmış bir dil olması sebebi ile bazı platformlarda (Windows) Java’dan biraz daha yavaş çalıştığı söylenmektedir.
Java, statik bir dildir. Bu her değişken tipinin önceden belirtiliyor olması denektir. String bir değer tanımlarken başına string ifadesini, sayı tanımlarken int, double gibi değişkenin ne tipte olduğunu belirtilen ifadeler kullanılmasıdır. Daha az hata payına imkan verir.
Python ise dinamik bir dildir. Statik programlama dillerinin tersine değişken tiplerinin belirtilmeden yazılması anlamına gelmektedir. Programın çalışma esnasında değişken tipini kullanıcının değil Python’un belirlediği anlamına gelmektedir. (Yazılımcıyı hızlandıran bir özelliktir fakat önceden gözle görülecek bir hatanın olup olmadığı konusunda eleştirilerde mevcuttur.)
Java:string eticaretevreni = “Hangi dil?”;
int x = 5;
double y = 22.4;
Python:eticaretevreni = “Hangi dil?”;
x=5;
y=22.4;
Syntax ve Kodlama
Python’un daha basit ve kolay bir söz dizimine sahip olduğu aşikardır. Söz dizimi olarak Python’un daha kolay olduğu bir yana her iki dilinde söz dizimine alışıldığı takdirde sorun olmayacağını belirtmek gerekir yani sadece syntax için dili seçimi yapmak yanlış bir tercih olabilir. Her iki dilinde söz dizimine örnek verirsek,
Python bir yorumlama dili olduğu için daha kısa kodlar ile karşımıza çıkar;
Java:public class Main
{public static void main(String[] args) {
İnt x=5, y=10;
int result = a*b;
System.out.printIn(“X ve Y çarpımı =“ + result);
}
}
Python:a=5
y=10
prnt(“X ve Y çarpımı =“, x*y)
Tabloya baktığınız zaman hem fikir olacağınız gibi, Java bilen birisi Python dilini kolaylıkla öğrenebilirken, Python bilen birisi Java dilini daha yavaş öğrenebilir.
Platform
Java’nın daha çok platformda çalıştığı bilinsede her iki dilinde platform açısından göreceli avantaj ve dezavantajı bulunmaktadır.
Örneğin, masaüstü uygulamalarında her iki dil çalışabilirken, Java’nın tartışılmaz üstünlüğünü yanında, Python’un da usulce ilerlemesinden bahsetmek gerekir. Windows, Linux ve MacOs tabanlı işletim sistemlerinde bu durum oldukça değişkendir.
Mobil platformlarda, Java dili ile Android uygulamaları geliştirilebilirken, Python tarafında Kivy ile gerliştirme sağlanmaktadır. Android, Java ile bütünleşmiş bir dil iken bugün yerini Kotlin’e bırakması hem avantaj hem dezavantaj içermekte, aynı şekilde Python Kivy ile hybrid (hem ios hem android üzerinde çalışan) mobil uygulamalar geliştirebilmek büyük bir avantaj olsada, henüz yaygınlaşmamış olması dezavantaj teşkil etmektedir.
Mobil platformlarla beraber E-ticaret Evreni’ni yakından ilgilendiren web platfromlarında ise Python’un üsttünlüğü Django gibi yaygın ve stabil frameworklere sahip olması diyebiliriz.
Bu noktada teknik olarak bir bilgi eklemek gerekirse, Java’nın sahip olduğu statik yapı çoğu platformda çevik ve ayrıntılı olarak çalışır.
Yapay Öğrenme
Büyük projeler ya da küçük projelerin büyümeye başladığı anda gereklilik haline gelen, veri analizi, derin öğrenme, makine öğrenmesi be yapay zeka gibi konularda Python dili oldukça yaygındır. Özellikle e-ticaret endüstrisinde önem arz ettiğini göz önüne alırsak, bu alanda en çok tercih edilen Python dilini bilen birisi için öğrenmek ve kullanmak büyük bir avantaj olacaktır. Sonrasında makina öğrenmesi, yapay zeka gibi alanlarda kendisine ayrı bir iş sahası açılmış olacağını vurgulamak gerekir.
İş Olanağı
Java daha köklü ve süregelen bir kullanıma sahip olduğu için kurumsal firmaların daha çok tercih ettiği bir dil olarak karşımıza çıkmaktadır. Python’da uzun süredir özellikle dünya çapında en çok tercih edilen diller arasına girdiği için kökleşmiş bir dil olduğunu kabul etmek gerekir. Fakat ülkemizde Java yazılımcılarının iş imkanı şu an için çok yüksektir.
Kaynak
Java, köklü ve uzun süredir yaygın olarak kullanılan bir dil olması nedeni ile kaynak kodlara ulaşmada ve sorunları çözmede daha güçlüdür. Bunun yanı sıra akademik eğitimlerde (özellikle ülkemizde) Java dili öncelikli olarak gösterilmektedir. Kuşkusuz dünya genelinde ve ülkemizde de Python hızla yaygınlaşmıştır. Son zamanlarda birçok üniversitemizde müfredata girdiğini söylemeden geçmek olmaz.