“Java nedir?” çok geniş bir soru aslında. Java en temelde “Nesneye yönelik bir programlama dilidir”. Ayrıca JSF, JSP, Java ME, Java FX, GlashFish gibi teknolojilerin de içerisinde bulunduğu platformun genel adıdır.

Java’nın diğer dillerden farkı nedir? Java programcılık dünyasına ne katmıştır?

C dilinin geliştirilmesi bilgisayar dünyasında devrim niteliği taşımaktadır. C’den önce bir çok dil geliştirilmiş olsa da C kadar geniş bir yelpazeye hitap edememişlerdir. C  Assembly kodunun yerini alabilecek, yapısal, verimli ve yüksek seviyeli bir dildir. C günümüzde hala geçerliliğini koruyan bir dil olmasına rağmen 70lerden 80lere doğru büyük projelerde prosedürel-yapısal dillerin yarattığı karmaşıklığa bir çözüm aranmaktaydı. 1979 yılında Bjarne Stroustrup C diline sınıfsal özellikleri ekleyerek “C winth classes”-”Sınıflı C” dilini geliştirdi. Daha sonra 1983 yılında bu dilin adı C++ olarak değiştirildi. C++ dili C gibi bir dilin mirasçısı olmanın getirdiği avantajla halen sistem programcılığında en geçerli dil olma özelliğini sürdürmektedir.

C++ programcılar tarafından mükemmel olarak nitelendirilirken 90′ların başında internetin hızla yaygınlaşması programlama dünyasında yeni bir açık ortaya çıkardı.  Ve 1991 yılında Sun Microsystems adına çalışan 5 kişi tarafından tasarlanan ve çalışan ilk halinin geliştirilmesi 18 ay süren “Oak” dili ortaya çıktı. Bu isim 1995 yılında “Java” olarak değiştirilmiştir. İnternet Java’nın ortaya çıkmasıyla yakından ilişkili olsa da asıl sebep platform bağımsız bir dil oluşturmaktır. Yani TV kumandasından buzdolabına tüm cihazlara hükmedebilecek bir dil oluşturmak. Web de ayrı bir platform olduğuna göre onun da programlara ihtiyacı vardı. Ve Java da burada devreye girdi.

Java’nın tarihsel gelişimini bir çok kaynaktan okuyabilirsiniz. Biz burada tarihi bırakıp işlev kısmına geçelim. Bildiğiniz gibi makine dilinden bir üst seviyede Assembly dili yer almaktadır ve herhangi bir dille yazdığımız tüm programlar aslında bu Assembly diline çevrilmektedir. Her işlemcinin Assembly komut seti farklıdır. Dolayısıyla bir program hangi işlemcide çalıştırılacaksa o işlemci için oluşturulmuş bir derleyici ile derlenmelidir. Her platform için derleyici geliştirmek çok maliyetli bir iş olduğundan Java olaya farklı bir bakış açısı getirmiştir. Java ile yazdığımız kodlar bir ara koda dönüştürülür. Ve bu ara kod da JVM (Java Virtual Machine-Java Sanal Makinesi) tarafından yorumlanarak yürütülür. Dolayısıyla yazdığınız program Java’yı destekleyen tüm platformlarda çalışabilir.

Java denildiğinde bir çok kişinin aklına ilk olarak Java Applet gelmektedir. İnternetin yeni yeni yayıldığı yıllarda istemci taraflı web uygulaması yazmak için en iyi çözüm olan  internet programcılığında da yeni bir sayfa açmıştır.

C/C++ ın güçlü ve kabul görmüş sözdizimi (syntax) Java’ya güç katıyor.

Yukarıda da bahsettiğimiz gibi Java’nın sahneye çıktığı yıllardan günümüze C++ programcılık dünyasında çok güçlü ve önemli bir noktada durmaktadır.  Bu c/c++ programcılarının Java öğrenmesini ciddi manada kolaylaştırmasına karşın Java C++ ın geliştirilmiş versiyonudur demek büyük bir hatadır. Bunun en büyük kanıtı olarak Java’nın C++ ile geriye doğru uyumlu olmamasını gösterebiliriz. Yine de bu mirasın Java’ya katkısı yadsınamayacak derecede çoktur.

Java ile Javascript aynı mıdır?

Hayır! Java ile Javascriptin isim benzerliği dışında bir ortak noktası yoktur. Javascript istemci taraflı web script diliyken Java geniş yelpazesiyle bir -platform bağımsız programlama dilidir.-

ByteCode-JVM-Java’nın farkı!

ByteCode JVM’nin çalıştırması için üretilmiş koddur. Bir sistem için JVM oluşturulduktan sonra herhangi bir java programı bu sistem üzerinde çalışabilir. Bununla birlikte ByteCode’a çevrilmiş bir Java programı JVM bulunan herhangi bir platformda çalışabilir. Java’nın gücü işte buradan gelmektedir.

Ayrıca JVM programın güvenliği konusunda da önemli bir rol üstlenmektedir. Programın JVM’nin içinde çalışması olası dış etkilere karşı daha güvenli kılar.

HotSpot

Java’nın ilk sürümünden sonra geliştirilen Hotspot teknolojisi sayesinde kod JIT tarafından çalışma zamanı esnasında parça parça derlenir. Bu teknoloji Java programlarının çalışmasında belirgin bir performans artışı sağlar.

Java’nın Belirleyici Özellikleri

Java geliştiricilerinin katkılarıyla oluşan özellikler listesini vererek bu makalemize nokta koyalım. Özellikleri açıklamaya gerek duymuyorum çünkü Java’yı keşfetmeye devam ettikçe siz de bu özellikler ile ne kastedildiğini çok iyi anlayacaksınız.

  • Basit
  • Güvenli
  • Taşınabilir
  • Nesne Yönelimli
  • Sağlam
  • Çok Kanallı
  • Mimariden Bağımsız
  • Yorumlanan
  • Yüksek Performanslı
  • Dağıtık
  • Dinamik

Bir başka yazıda görüşmek üzere sağlıcakla kalın…