YouTube’da yayınlanan The Java Story belgeseli, bugün kurumsal yazılım dünyasının en yaygın dillerinden biri olan Java’nın ne kadar kırılgan bir başlangıçtan çıktığını anlatıyor. Belgeselin ana fikri basit: son derece etkili teknolojiler bile çoğu zaman başarısızlığa çok yaklaşmış projelerden doğuyor. Java da önce set-top box pazarına yönelik bir girişim olarak başladı, ardından web’in yükselişiyle yön değiştirdi ve 1995’teki tanıtımından yalnızca günler önce kritik bir teknik kriz yaşadı.
Belgeselde Java’nın yaratıcısı James Gosling’in yanı sıra Oracle’daki kıdemli Java mimarları Mark Reinhold ve Brian Goetz gibi isimler yer alıyor. Öne çıkan anlatılardan biri de, daha sonra Java sanal makinesi tarafında kilit rol üstlenen Tim Lindholm’un deneyimleri. Lindholm, 1994’te Sun Microsystems bünyesine katıldığında projenin neredeyse dağılmak üzere olduğunu söylüyor. O dönemde Sun, mühendislik odaklı üst seviye iş istasyonlarıyla güçlüydü, ancak PC dışındaki cihazlar için yazılım geliştirmeyi de hedefliyordu.
Bu amaçla kurulan FirstPerson adlı deneysel iştirak, Time Warner’ın etkileşimli video-on-demand set-top box ihalesini kazanmayı umuyordu. Gosling’in bu proje için geliştirdiği dil ve çalışma zamanı Oak adını taşıyordu. Ancak ihale, Sun’ın rakibi Silicon Graphics’e gitti. Sun bu yenilgiden sonra FirstPerson ekibinin büyük bölümünü işten çıkardı. Lindholm, ekibe katıldıktan sadece bir ay sonra kendisini adeta “bombalanmış bir sığınakta kalan mülteciler” gibi hissettiklerini anlatıyor. Buna rağmen Oak üzerinde çalışmak üzere 12 mühendisten oluşan küçük bir ekip kaldı.
Projenin web’e yönelmesi ise planlı bir stratejiden çok tesadüf sonucu oldu. Ekipten bir mühendis, yeni çıkan Mosaic tarayıcısıyla oynarken World Wide Web’in Oak için doğru hedef olabileceğini fark etti. Bu, internetin henüz kitlelere ulaşmadığı bir dönemdi; Windows 95’in web erişimini yaygınlaştırmasına daha bir yıl vardı. Ekip, Oak üzerinde çalışan ve animasyon gösterebilen WebRunner adlı bir Mosaic klonu geliştirdi. Bu yazılım daha sonra Java applet yaklaşımının öncüsü haline geldi.
1995 başında Oak adı Java olarak değiştirildi. İsim değişikliğinin, ekibin yoğun kahve tüketimine gönderme olduğu aktarılıyor. Ancak asıl önemli nokta, Java’nın web geliştiricilerinin HTML’in sınırlarını fark etmeye başladığı bir döneme denk gelmesiydi. Gosling ve ekip temel bir prototip hazırlamıştı, fakat bunu ticari ölçekte gerçekten çalışır hale getirme görevi Lindholm ile Lisp uzmanı Frank Yellin’e düştü. İkili, threading ve garbage collection gibi dönemi için ileri sayılan kavramların gerçek sistemlerde güvenilir biçimde işlemesini sağlamakla yükümlüydü. Daha sonra orijinal JVM spesifikasyonunu da birlikte kaleme aldılar.
En büyük sorunlardan biri threading tarafındaydı. O yıllarda bu yaklaşım yeniydi ve hazır kütüphanelerle çözmek mümkün değildi. Sun, Java’yı 1995’teki SunWorld konferansında tanıtmayı planlıyordu, ancak çalışma zamanı ciddi biçimde çöküyordu. Lindholm’un anlattığına göre sorunun kaynağı Java’nın thread modelinin temelden hatalı olmasıydı. SPARC işlemcisi bir komut yürütürken sistem kesmeleri oluşuyor, bu da bellekten silinmiş durumun geri yüklenememesi nedeniyle sistemin çökmesine yol açıyordu.

Lindholm, kesmelerin yalnızca belirli noktalarda gerçekleşmesi gerektiğini fark etti. Sonuç olarak konferansa üç gün kala tüm thread paketini baştan yazdı. Sun CEO’su Scott McNealy konferansta Java demosunu yaparken Lindholm izleyiciler arasında en kötü senaryoyu beklediğini söylüyor. Neyse ki son dakika yeniden yazımı işe yaradı ve Java’nın çıkışı sorunsuz geçti. Belgeselin en dikkat çekici bölümlerinden biri de tam olarak bu: bugün çok olgun görünen bir platformun tanıtımı, birkaç gün önce yapılan köklü bir teknik müdahaleye bağlıydı.
Java’nın erken döneminde dikkat çeken bir başka başlık da kaynak kodun paylaşımıydı. Sun, ikili Java çalışma zamanını ücretsiz indirilebilir hale getirdi; ayrıca isteyenlere kaynak kodu da veriyordu. Lindholm, binlerce kişinin bunu talep ettiğini aktarıyor. Resmi bir açık kaynak modeli olmasa da dışarıdan gelen katkılar hataların düzeltilmesine ve yazılımın başka platformlara taşınmasına yardımcı oldu. Sun yönetimi bu yaklaşımı resmileştirmekten uzak kaldı; Java’nın resmi olarak açık kaynak haline gelmesi için yaklaşık bir on yıl daha geçmesi gerekecekti.
Belgesel, Java applet’lerin web’de sınırlı ölçüde benimsendiğini de hatırlatıyor. Web programlamasının yükünü zamanla ColdFusion ve Netscape’in JavaScript projesi gibi farklı teknolojiler taşıdı. Buna karşılık Java’nın asıl gücü arka uç sunucularında ortaya çıktı. Tam bu sırada Microsoft da Java’yı potansiyel bir tehdit olarak görmeye başladı. 1996’da Windows için Java lisanslandı, ancak ek API’ler eklendi ve bazı bileşenler desteklenmedi. Sun, bunun Java’nın platformlar arası uyumluluğunu zayıflatıp geliştiricileri Windows’a özgü bir yola çekmeyi amaçladığını savundu. Yıllarca süren hukuk mücadelesi ekip üzerinde ciddi yük oluşturdu ve süreç, Microsoft’un Sun’a toplamda yaklaşık $2 milyar ödemesiyle sonuçlandı.
The Java Story, sonraki yıllarda J2EE döneminden Spring’in yükselişine, Sun’ın çöküşünden Oracle satın alımına ve OpenJDK sonrası JVM ekosisteminin genişlemesine kadar uzanıyor. Lindholm ise 2000’lerin başında giderek daha kurumsal hale gelen ortam nedeniyle Java’ya olan tutkusunu kaybettiğini, ardından Google’a geçip bu yılki emekliliğine kadar orada kaldığını anlatıyor. Geriye baktığında, Java’daki rolünü hayatındaki rastlantısal ama belirleyici dönemeçlerden biri olarak tanımlıyor. Belgesel de tam olarak bunu gösteriyor: Java’nın hikâyesi yalnızca bir programlama dilinin değil, başarısızlıktan dönüp kalıcı etki yaratmanın hikâyesi.


