Teknolojilerin kesiştiği nokta!

JAVA NEDİR, NE DEĞİLDİR?

Java’nın temelleri 1991 yılında Sun çatısı altında kurulan “Green Team” isimli onüç kişilik bir ekip tarafından atıldı. Ekip gelecek hakkında öngörüde bulunup, bu öngörü neticesinde bilişim teknolojileri üstünde araştırma-geliştirme yapmayı amaçlıyordu. Ekip çalışmaları sonucunda, geleceğin ev elektroniği cihazları ve kişisel elektronik cihazlarda olduğuna kanaat getirerek bu yönde çalışmalarına devam etti. Çalışmalar ilk meyvesini “Star Seven” isimli bir kontrol cihazıyla verdi. Bu cihaz birçok elektronik cihazı kontrol edebilme yetisine sahipti ve yetisinin temelinde herhangi bir platforma bağlı olmayan Oak dili yatıyordu. Hemen her yeni ilerici buluş gibi bu buluş da hemen kabul görmedi. Teklif götürülen kablolu yayın şirketleri ya projeyi anlayamadıklarından ya da kullanıcının anlayamayacağı düşüncesiyle projeyi sahiplenmek istemedi.

Bu başarısızlık “Green Team”in ilk başarısızlığıydı fakat bu başarısızlık onları yıldırmadığı gibi yeni bir bakış açısı verdi: geliştirdikleri teknoloji internet ortamı için çok uygundu. Çalışmalar sonucunda ortaya (daha sonra adı HotJava olarak değiştirilecek olan) WebRunner isimli internet tarayıcısı çıktı. Java’nın kurucu ekibinde yer alan James Gosling geliştirdikleri teknolojiyi “Web ile aynı zamanda geliştirilen, Web’in içeriğini ulaşılabilir hale getiren bir “iç çamaşır” olarak tanımlıyordu.

Java, Oak ismini ardında bırakarak 23 Mayıs 1995’te açık kullanıma sunuldu ve günümüzde de devam eden bir ilgiyle karşılaştı. Sun’ın 2010 yılında Oracle tarafından satın alınmasıyla birlikte Java bir anlamda el değiştirmiş oldu. Burada bir karışıklığa açıklık getirmek gerekecek. Oracle firması Sun’u satın almakla Java’nın sahibi olarak gözükse de Java aslında sahipsizdir. Sun sadece Java’yı lisanslamakla yükümlü bir firma. Java hâlihazırda Java Community Process-JCP (Java Topluluk İşlemleri) tarafından geliştirilmekte ve bu ortam Java’yı kapalı kapılar ardında değil herkesin rahatça katkı sağlayabileceği ve kararlara katılabileceği bir ortamdır. Java’nın geleceği hakkındaki kararlar oy çokluğu ile alınır ki bu da ortamın demokratikliğinin bir diğer göstergesidir. Elbette bu durum Sun’un JCP içindeki etkinliğinden bahsetmemize engel değil. JCP üyeleri Java’da olmasını istedikleri yeni bir özelliği Java Spesification Request-JSR (Java Özellik Talebi) ile teklif edebiliyorlar. Bir JSR oluştuğunda beraberinde bir yürütücü heyet ve teknik lider de oluşuyor. JSR’ler halka açık incelemenin de içinde bulunduğu aşamalardan geçerek sonuçta yapılan oylama sonucu kabul ya da reddedilirler. Java standartlarının bu denli açık olması, Java’yı bu gün özgür yazılım için en çok tercih edilen dillerden biri haline getirmiştir.

Şimdi biraz da işin teknik tarafına eğilelim. Java’nın doğasında nesne merkezlilik vardır. Dolayısıyla Java’yla uğraşacaksanız, Nesle Yönelimli Programlama (NYP) ile de uğraşacaksınız demektir. NYP’yı diğerlerinden (aslında çoğul kullanmak çok doğru değil, karşısında duran kavram yordamsal programlamadır) ayıran en önemli özelliği isminde barındırdığı “nesne” kavramıdır. Bazıları nesne kavramını doğayla özdeş bulsa da programlama içindeki nesne kavramı doğadakinden biraz farklıdır. NYP, bir programın birbiriyle iletişim kurabilen birimler ve nesnelerden oluştuğunu varsayar. Bu nesnelerin her biri kendi başına veri işleyebilir, diğer nesnelerden bilgi alabilir ya da diğer nesneler ondan bilgi alabilir. Bu anlamda “nesne” insan doğasında “nesne” adı verilen varlıklara değil de doğrudan insan iç doğasına benzer bir yapıdadır. Tabii Avatar’daki gibi nesnelerin kendi aralarında konuştuğu bir ağın varlığına inanıyorsak o başka. Yordamsal programlamada ise tüm program bir komut dizisinden ya da fonksiyonlar kümesinden meydana gelir. Nesne yönelimli programlama programların boyutunu düşürürken, karmaşıklığı da giderir, geliştirmeyi kolaylaştırır ve bakım maliyetlerinin düşmesini sağlar.

Kaynak: javaturk.org, Akın Kaldıroğlu

Bu bir yazı dizisidir. Yazının 2. bölümü için tıklayınız.



Sizi Arayalım!
Sitemizi kullanarak çerezlere (cookie) izin vermektesiniz. Detaylı bilgi için Çerez Politika'mızı inceleyebilirsiniz.