Java'nın Hikayesi

CorsaiR

Emektar
27 Ara 2005
1,228
18
Çekirdekten
Java'nın Hikayesi
Bilgisayarla uzaktan yakından ilgilenen herkes Java hakkında az ya da çok mutlaka birşeyler okumuş veya duymuştur ve “ Java niye bu kadar popüler? Java’ yı diğer dillerden ayıran ne? “ diye düşünmüştür. Bence bu sorulara cevap verebilmek için Java’ nın özelliklerinden, gelişiminden bahsetmekte fayda var.

Genel de Java, internet ve Web sayfası kavramlarıyla birlikte anılır. İsterseniz biz de Java’dan bahsetmeye Java ve internet diyerek başlayalım .

İnternet’te hepimiz surf yaparız. Birşeyleri bulmak için, ilginç birşeyle karşılaşmak için ya da eğlenmek için linkleri kullanarak çeşitli sayfalara gireriz. Ama web sayfalarını sadece bir magazin sayfası gibi okur, inceleriz. Sayfaya bir kez gireriz, okur ve gideriz.

Yani web sayfaları programlardan farklı olarak pasiftirler. Java tekrar kullanılan bir programın çekiciğini getirir internete. Bir Java appleti olan sayfayı sadece okumakla kalmaz hem dinler, hem seyreder, hem de interaktif olarak sayfayı kullanabilirsiniz. Örneğin; internet üzerinden arkadaşınızla bir serverın müdahelesi olmadan oyun oyanayabilirsiniz.

Bahsettiğimiz gibi Java’ nın popüleritesi internette birçokşey yapabilmeyi sağladığı için arttı. Ama Java’yı web sayfası hazırlamada kullanılan bir dil olarak düşünmek yanlış olur.

Java’ nın güzelliği java' da oluşturulan bir yazılımın Microsoft Windows, X Window sistemleri, Motif, ve OS/2 …vs. gibi ortamlarda çalışabilmesidir. Java ile herhangi bir ortamda oluşturulan bir yazılım hiçbir değişiklik yapılmadan, hatta tekrar derlenmeye bile ihtiyaç duyulmadan başka bir ortamda rahatlıkla kullanılabilir. Java dışında bir dilde program yapmak için genelde izlenen yol şudur. Bir işletim sistemi seçilir bu işletim sistemine uygun olarak program yazılır daha sonra diğer işletim sistemleri için bu programlar yeniden düzenlenir. Bu da büyük miktarlarda emek ve maddi kaybı beraberinde getirir.

Java bu sorunu ortadan kaldırıp interneti bilgisayarınız haline dönüştürecek programlama dilidir. Herhangi işletim sistemi ve donanıma sahip bilgisayarların bir web sayfasındaki java diliyle yazılmış bir programı indirip kullanabilmesi mümkündür.

Java kodları java derleyicisi tarafından javaya has, byte-code formatında derlenir. Byte-code formatındaki java kodu java interpreter (yorumlayıcı) içeren herhangi işletim sistemi tarafından çalıştırılabilir. Java kodu her çalıştırıldığında interpreter tarafından makine diline çevrilir. Web sayfalarındaki appletler byte-code (class file) formatındadır. Sayfaya girildiğinde sayfadaki byte-code formatında derlenmiş applet browserın bir parçası olan JVM (Java Virtual Machine) tarafından yerel makine koduna çevrilir ve appletin yerel bilgisyarda çalıştırabilmesini sağlar.

Java dinamik bir dil olduğundan java kodunun makine diline çevirilip daha sonra kullanılmak üzere saklamasına izin verilmez. Java dilinde yazılmış bir program her çalıştırıldığında byte-code, yorumlayıcı (interpreter) tarafından makine diline çevrildiğinden java interpreted bir dildir. Bu özelliğinden dolayı da C, ve C++ ’ a göre daha yavaş çalışır. Çünkü C ve C++’ da kod direk olarak makine diline çevrilerek derlenir, dolayısıyla program her çalıştırıldığında kodun bir daha yorumlanmasına gerek yoktur. Bu özelliklerinden dolayı bu dillerin faklı donanım ve işletim sitemine sahip her tür makinaya göre tekrar derlenmeleri gerekir.

Java' da fonksiyon tanımları değişken tanımları, fonksiyonlar, nesneler gibi birçok özellik C++' a çok benzer. Çünkü Sun başlangıçta C++ kullanarak ucuz ve ortamdan bağımsız bir yazılım oluşturmaya çalıştı. Daha sonra C++' ın karmaşıklığından dolayı hedef değiştirildi ve C++ tabanlı yeni bir dil olan Java yazıldı ve C++’ da programcı için sorun olan bellek yönetimi (memory managements), işaretçi hataları (pointer bugs) …vs. gibi işlemlerin otomatik olarak arka planda gerçekleştirilmesi sağlandı. Böylece C’nin başa bela olan birçok külfeti ortadan kaldırıldı ve C++ ile kıyaslandığında öğrenilmesi çok daha kolay bir dil olan Java ortaya çıktı.

Java’ nın en önemli özelliklerinden biri de güvenli bir dil olmasıdır. Çünkü doğal olarak kullanıcı(client) için bilmediği bir siteden uygulama indirdirip çalıştırması için o uygulamanın güvenli olduğundan emin olması gerekir. Girdiğiniz sayfada bulunan appletin bilgisayarınıza virüs bulaştırmasını veya başka bir saldırıyı önlemek için java’ da bir dizi mekanizma oluşturulmuştur. Java güvenlik mekanizması hiçbir appletin yerel makinadaki veya client üzerindeki veya uzaktaki bir dosya sistemini okumasına veya bu dosya sistemine birşey yazmasına, sunucu serverın dışındaki bir servera bağlanmasına ya da bunların dışındaki tehlikeli işlemlere izin vermez. Tabiki bu güvenlik kısıtlamaları java' nın web uygulamaları olan appletler için geçerlidir. Yerel makinada çalışacak uygulamalar(applications) yerel diskten herhangi birşey okuyabilir ve yerel diske yazabilirler.

Son olarak java' nın diğer bir özelliğine, "multithreaded(çok kanallı)" bir dil olmasına değinmekte de fayda var. Çoğu programlama dilleri tek kanalıdır. Tek kanalı ortamlarda; oluşturulacak uygulamanın, bir anda sadece bir işle ilgileneceği prensibinden hareket edilir. Java' da ise(multithreaded dillerde) aynı anda birden çok iş bir arada yapılabilir, bunu bir internet tarayıcısının(web browser) çalışmasına benzetebiliriz. Aynı anda web browser ile internetten müzik dinlenip sayfanın scrollbar' ını kullanıp sayfa aşağıya doğru taranabilir, ve aynı anda internetten bir doküman indirilebilir. Aslında yapılan iş zamanı kanallar arasında paylaştırmaktır. CPU çok hızlı bir şekilde kanallar arasında geçiş yaparak her kanaldaki işin bir kısmını yapıp diğer kanala geçer ve bu sürekli bir döngü halinde devam eder. Böylece tüm kanallardaki işler birlikte yapılır.

Bence bu özelliklere sahip bir dil olan java bu popüleriteyi ve öğrenilmeyi hak ediyor. Ya sizce...
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.