JAVA NEDİR?

Veri Akademi7 dk okuma
Buharı tüten Java kahve fincanı logosu, beyaz arka plan üzerinde tek odak, marka turuncusu tonlarında

1995 yılının Mayıs ayında Sun Microsystems, SunWorld konferansında küçük ama iddialı bir dil tanıttı: Java. Aslında dilin kökleri 1991'e, James Gosling önderliğindeki Green Project'e uzanıyordu. Ekip başlangıçta interaktif televizyonlar ve set-top kutular için bir dil tasarlıyordu; donanım çeşitliliği o kadar fazlaydı ki her cihaz için ayrı kod yazmak imkânsızdı. İşte bu kısıtın içinden, sonradan tüm yazılım dünyasına yayılacak bir prensip doğdu: "Write Once, Run Anywhere." Bugün Java'yı anlamak, sadece sözdizimini öğrenmek değil; bu felsefenin nasıl bir mimariye dönüştüğünü kavramaktır.

1. Green Project ve Oak'tan Java'ya Geçiş

Green Project, 1991'de Patrick Naughton, Mike Sheridan ve James Gosling tarafından başlatıldı. Amaç, tüketici elektroniği için C++'ın karmaşıklığından arındırılmış, taşınabilir bir dil yaratmaktı. Gosling ilk başta C++'ı genişletmeyi denedi ama sonuca ulaşamadı ve sıfırdan yeni bir dil yazmaya karar verdi. Dilin ilk adı, ekibin ofisinin önündeki meşe ağacından gelen "Oak"tı. Ne var ki Oak adı başka bir firma tarafından tescilliydi. Efsaneye göre yeni isim, ekibin tükettiği bol miktarda Endonezya kahvesinden — Java adasından — esinlenerek bulundu.

İlk hedef pazar olan interaktif TV ticari açıdan başarısız olunca proje neredeyse kapanıyordu. Ancak 1993-1994 arasında web'in patlamasıyla birlikte ekip, taşınabilirlik özelliğinin tarayıcı içinde çalışan küçük programlar (applet'ler) için biçilmiş kaftan olduğunu fark etti. Netscape Navigator'ın Java'yı desteklemesi, dilin hızla yaygınlaşmasını sağladı.

2. "Write Once, Run Anywhere" Nasıl Çalışır?

Java'nın temel vaadi şuydu: aynı kod, farklı işletim sistemlerinde değişiklik yapmadan çalışsın. Bu vaadi mümkün kılan iki katmanlı bir mimaridir:

  • Java Compiler (javac): Kaynak kodu (.java) doğrudan makine koduna değil, ara bir biçim olan bytecode'a (.class) çevirir.
  • Java Virtual Machine (JVM): Her işletim sistemi için ayrı yazılmış bu sanal makine, bytecode'u o platforma özgü makine koduna dönüştürerek yorumlar veya derler.
  • Java Runtime Environment (JRE): JVM ile birlikte standart kütüphaneleri içeren çalışma ortamıdır.
  • Java Development Kit (JDK): Geliştirme için derleyici, hata ayıklayıcı ve diğer araçları sunan tam paket.

Yani Windows'ta yazdığınız bir Java programı, Linux veya macOS üzerinde de aynı bytecode dosyasıyla çalışır. JVM'in varlığı, Java'yı yorumlanan ve derlenen diller arasında özgün bir yere yerleştirir. Sürüm bazlı API farkları ve standart kütüphane referansları için resmi Java dokümantasyonu başvurulacak ilk kaynaktır.

Java derleme akışı: .java dosyası, ok, .class bytecode, ok, JVM küpü ve dışa fanlanmış Windows macOS Linux ikonları

3. Nesne Yönelimli Programlama Felsefesi

Java baştan itibaren saf bir nesne yönelimli (OOP) dil olarak tasarlandı. Bu, sadece sözdizimsel bir tercih değil; büyük ölçekli sistemlerin nasıl modellendiğine dair bir felsefedir. Sınıf (class), kalıtım (inheritance), çok biçimlilik (polymorphism) ve kapsülleme (encapsulation) gibi kavramlar dilin merkezine yerleştirildi.

C++'tan farklı olarak Java, çoklu kalıtıma kapalıdır; ancak arayüzler (interface) aracılığıyla benzer esneklik sağlanır. Bellek yönetiminin geliştiriciden alınıp Garbage Collector'a devredilmesi de döneminin önemli bir kararıydı: pointer aritmetiği kaldırıldı, bellek sızıntıları büyük ölçüde önlendi. Java sözdizimine ve nesne yönelimli prensiplere baştan başlamak isteyenler için kapsamlı Java eğitimi içeriklerinden yararlanabilirsiniz.

4. Sun Microsystems'ten Oracle'a

2009 yılında Oracle, Sun Microsystems'i 7.4 milyar dolara satın aldı ve Java'nın sahipliği el değiştirdi. Bu süreç sancısız olmadı: Google'ın Android'de Java API'lerini kullanması Oracle ile uzun yıllar süren bir hukuki sürece dönüştü ve nihayetinde 2021'de ABD Yüksek Mahkemesi Google lehine karar verdi. Bu davanın bıraktığı önemli miras, API kullanımının "fair use" kapsamında değerlendirilebileceği yönündeydi.

Oracle döneminde Java'nın sürüm modeli de değişti. Önceleri 3-4 yılda bir büyük sürümler gelirken, Java 9'dan itibaren altı ayda bir düzenli sürüm modeli benimsendi. LTS (Long Term Support) sürümleri — Java 8, 11, 17 ve 21 — kurumsal projelerin omurgası haline geldi.

5. Java'nın Kullanım Alanları

"Bir TV diline" başlayan Java, bugün yazılımın hemen her katmanında karşımıza çıkar:

  1. Kurumsal yazılımlar: Bankacılık, sigorta, telekom altyapılarının büyük çoğunluğu Java tabanlıdır.
  2. Android uygulamaları: 2008'den itibaren Android'in birincil dili olarak kullanıldı; bugün Kotlin ile birlikte kullanılıyor.
  3. Web back-end: Spring, Jakarta EE gibi framework'ler büyük ölçekli web sistemlerinin temelini oluşturuyor.
  4. Büyük veri: Hadoop, Kafka, Spark gibi popüler veri işleme araçları JVM üzerinde çalışır.
  5. Gömülü sistemler ve IoT: Java ME ve embedded JVM'ler hâlâ sahada.
  6. Bilimsel ve finansal uygulamalar: Yüksek frekanslı işlem sistemlerinden simülasyonlara kadar.

6. Java'nın Güçlü ve Zayıf Yönleri

Java'nın güçlü yönleri arasında platform bağımsızlığı, geniş ekosistem, olgun araç desteği, yüksek performanslı JIT (Just-In-Time) derleyici ve büyük topluluk sayılabilir. Tip güvenliği ve geriye dönük uyumluluk konusunda titiz tutumu, kurumsal projelerde tercih edilmesinin başlıca nedenidir.

Zayıf yönleri ise verbose (uzun) sözdizimi, başlangıç (startup) süresinin uzun olması ve bellek tüketiminin görece yüksek kalmasıdır. Son yıllarda GraalVM, native-image ve Project Loom gibi girişimler bu sorunları doğrudan hedefliyor.

Merkez Java kahve fincanı logosundan dışa fanlanmış sunucu rack, mobil, veri tabanı varili ve web küresi ikonları

7. Bugünün Java'sı

Otuz yılı aşkın geçmişiyle Java, "modası geçmiş" denilse de TIOBE ve RedMonk gibi popülerlik endekslerinde sürekli üst sıralarda yer almayı sürdürüyor. Modern Java (17+) sürümlerinde gelen kayıt sınıfları (records), pattern matching, sealed class'lar ve sanal thread'ler, dilin sadece eski kodları taşımakla kalmayıp aktif olarak evrildiğini gösteriyor.

1991'de bir TV uzaktan kumandasını programlamak için tasarlanan dilin, otuz yıl sonra dünya bankacılık sisteminin omurgasını oluşturduğunu görmek; "write once" felsefesinin sadece bir slogan değil, gerçek bir mühendislik vizyonu olduğunu kanıtlıyor. Java'yı temellerinden öğrenmek isteyenler için yapılandırılmış bir Java eğitimi yol haritası, hem dilin sözdizimini hem de bu felsefenin pratik karşılığını anlamak açısından sağlam bir başlangıçtır.

Sıkça Sorulan Sorular

Java ilk olarak ne zaman ve hangi şirket tarafından geliştirildi?

Java, 1991'de Sun Microsystems bünyesindeki Green Project ekibi tarafından James Gosling önderliğinde tasarlanmaya başlandı. Resmi olarak ise 23 Mayıs 1995'te SunWorld konferansında dünyaya duyuruldu. Sun Microsystems, 2009 yılında Oracle tarafından satın alındığından bu yana Java'nın sahibi Oracle'dır.

Java'nın adı neden 'Java'? Önceki adı neydi?

Dilin ilk adı, ekibin ofis penceresinden gördüğü meşe ağacından esinlenen 'Oak'tı. Ancak bu isim başka bir firma tarafından tescilli olduğu için değiştirildi. Yaygın anlatıya göre yeni isim, ekibin sıkça içtiği Endonezya menşeli Java kahvesinden gelmektedir.

'Write Once, Run Anywhere' ne anlama gelir ve nasıl mümkün olur?

Bu söz, aynı Java kodunun farklı işletim sistemlerinde değişiklik yapılmadan çalışabilmesini ifade eder. Bunu sağlayan unsur JVM'dir. Java derleyicisi kaynak kodu doğrudan makine koduna değil, platform bağımsız bytecode'a çevirir; her işletim sistemine özel JVM ise bu bytecode'u o platformda yorumlayarak çalıştırır.

JDK, JRE ve JVM arasındaki fark nedir?

JVM, bytecode'u çalıştıran sanal makinedir. JRE, JVM'e ek olarak standart kütüphaneleri içerir ve Java programlarını çalıştırmak için yeterlidir. JDK ise geliştirme için gerekli olan derleyici (javac), hata ayıklayıcı ve diğer araçları içeren tam pakettir; geliştirici JDK kurar, son kullanıcı sadece JRE'ye ihtiyaç duyar.

Java ile JavaScript aynı şey mi?

Hayır, isim benzerliği dışında ortak yanları yoktur. Java, Sun Microsystems'te tasarlanan, derlenip JVM'de çalışan nesne yönelimli bir dildir. JavaScript ise Netscape'te 1995'te Brendan Eich tarafından tasarlanan, tarayıcılarda çalışan yorumlanan bir betik dilidir. JavaScript ismi, dönemin pazarlama tercihiyle Java'nın popülerliğinden faydalanmak için seçilmiştir.

Java hâlâ kullanılıyor mu yoksa modası geçti mi?

Java, TIOBE ve RedMonk gibi popülerlik endekslerinde sürekli ilk beşte yer alır. Bankacılık, sigorta, telekom ve büyük ölçekli web sistemlerinin önemli bir kısmı Java üzerine kuruludur. Spring, Hadoop, Kafka gibi araçların JVM üzerinde çalışması ve modern sürümlerin (17, 21) aktif geliştirilmesi, dilin canlılığını korumaktadır.

Java öğrenmek için önce hangi sürümle başlanmalı?

Yeni başlayanlar için LTS (Long Term Support) sürümlerini tercih etmek mantıklıdır. Şu anda Java 17 ve Java 21 en yaygın LTS sürümleridir. Eski projelerle karşılaşma ihtimaline karşı Java 8 sözdizimini de tanımak faydalıdır; ancak yeni öğrenenler doğrudan modern sürümlerin sunduğu özelliklerle başlamalıdır.

Android uygulamaları hâlâ Java ile mi yazılıyor?

Android'in birincil dili 2008'den 2017'ye kadar Java idi. Google, 2017'de Kotlin'i resmi olarak destekledi ve 2019'da Android için tercih edilen dil ilan etti. Ancak mevcut Android kod tabanının büyük kısmı hâlâ Java'dır ve iki dil aynı projede sorunsuz biçimde bir arada kullanılabilir.