JAVA NEDİR?

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.

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ı.

"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ı

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.

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.

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.

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ı

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.