internet ve Java’nın Gelişi

0
1007

internet ve Java’nın Gelişi

Programlama dillerindeki bir sonraki başlıca ilerleme Java ile gerçekleştirilmiştir. Önceleri
Oak olarak adlandırılan Java ile ilgili çalışmalar I99l‟de Sun Microsystems‟da başladı. Java’nın
tasarımının arkasında yer alan esas sürücü güç James Gosling’di. Patrick Naughton, Chris
Warth, Ed Frank ve Mike Sheridan‟ın da Java üzerinde ayrıca rolü oldu.
Java, söz dizimi ve felsefesi C++‟tan alınan yapısal ve nesne yönelimli bir dildir. Java‟nın
yenilikçi özellikleri, programlama sanatındaki ilerlemelerden çok fazla etkilenmedi (gerçi bu
ilerlemelerin bir kısmının kuşkusuz etkisi olmuştur); bu özellikleri daha ziyade bilişim orta-
mında yaşanan değişiklikler biçimlendirdi. internet’in genel kullanıma açılması öncesinde,
programların birçoğu belirli bir CPU ve belirli bir işletim sistemi için yazılıyor, derleniyor ve
yönlendiriliyordu. Programcıların kodlarını yeniden kullanmayı sevdikleri her zaman için ge-
çerli bir durum olsa da, bir programı kolaylıkla bir ortamdan diğerine aktarma becerisi halen
erişilmesi gereken bir özellikti ve taşınabilirlik (portability), diğer acil problemlerin yanında,
ancak arka koltukta yer bulabiliyordu. Ancak, birçok farklı tipte CPU‟nun ve işletim sisteminin
birleştirildiği internet’in çıkışıyla birlikte, eski taşınabilirlik problemi de yeniden gündeme
geldi. Taşınabilirlik problemini çözmek için yeni bir dile ihtiyaç vardı. işte bu yeni dil Java’ydı.
Java’nın tek önemli özelliği (ayrıca, hızla kabul görmesinin de nedeni), platformlar
arasında taşınabilir kod geliştirme becerisi olmasına rağmen Java’yı teşvik eden asıl enerjinin
internet olmadığını kaydetmek enteresandır. Asıl teşvik, gömülü denetleyiciler (embedded
controllers) için yazılım geliştirmek amacıyla kullanılabilecek platformdan bağımsız bir dile
(cross-platform language) olan ihtiyaçtır. 1993’te, gömülü denetleyiciler için kod geliştirirken
ortaya çıkan platformlar arasında taşınabilirliği ile ilgili hususlarla internet için kod
geliştirmeye çalışırken de karşılaşıldığı arlık netleşmişti. Hatırlayınız: internet, birçok farklı
tipte bilgisayarın yaşadığı çok geniş, dağıtık bir bilişiim evrenidir. Taşınabilirlik problemini
küçük ölçekte çözen tekniklerin aynıları, büyük ölçekte internet’e de uygulanabilir.
Java, programın kaynak kodunu bytecode denilen bir ara dile dönüştürerek taşınabilirliği
sağlıyordu. Bu “bytecode” daha sonra Java Sanal Makinesi (Java Virtual Machine – JVM)
tarafından çalıştırılıyordu. Bu nedenle, bir Java kodu JVM‟in mevcut olduğu her ortamda
çalıştırılabilecekti. Ayrıca, JVM‟i uygulamak nispeten kolay olduğu için JVM çok sayıda
ortamda kolayca kullanılabiliyordu.
Java‟nın “bytecode” kullanımı hem C‟ye hem de C++‟a göre kökten farklılık gösteriyordu.
C ve C++ derlendiğinde hemen hemen her zaman çalıştırılabilir makine kodu elde ediliyordu.
Makine kodu ise belirli bir CPU ve işletim sistemine sıkı sıkıya bağlıdır. Yani, bir C/C++
programını farklı bir sistemde çalıştırmak istemişseniz, programın yeniden derlenmesi ve bu
ortam için spesifik olarak makine kodunun üretilmesi gerekecekti. Bu nedenle, çok çeşitli
ortamlarda çalışacak bir C/C++ programı geliştirmek için programın birkaç farklı çalıştırılabilir
versiyonuna ihtiyaç vardı. Bu pratik olmadığı gibi aynı zamanda maliyetliydi de. Java’nın ara
dil kullanımı zarif ve maliyet açısından hesaplı bir çözümdü. Aynca bu, C#‟ın kendi amaçları
doğrultusunda adapte edeceği bir çözümdü.
Önceden bahsedildiği gibi, Java; C ve C++‟ın soyundan gelmektedir. Söz dizimi C‟yi
temel alır; nesne modeli ise C++‟tan geliştirilmiştir. Java kodu ne ileri ne de geri yönde C veya
C++ ile uyumlu olmasa da, Java’nın söz dizimi yeteri kadar benzer olduğu için, çok sayıda
programcıdan oluşan mevcut C/C++ programcıları ekibi çok az bir çaba ile Java‟ya
kayabileceklerdi. Üstelik Java mevcut bir yöntemin üzerine inşa edilmiş ve geliştirilmiş olduğu
için Gosling ve arkadaşları yeni ve yenilikçi özelliklere odaklanmakta serbesttiler. Tıpkı
Stroustrup‟un C++‟ı geliĢtirirken “tekerleği yeniden icat etmesine” gerek olmadığı gibi,
Gosling’in de Java‟yı geliĢtirirken bütünüyle yeni bir dil icat etmesi gerekmiyordu. ilaveten,
Java‟nın ortaya çıkıĢıyla C ve C++ yeni bilgisayar dillerinin üzerine inşa edileceği onaylanmış
bir katman olmuş oluyordu.

CEVAP VER