Java Teknolojisi Nedir?
Java, 1990′ların başında dünyanın önemli yazılım firmalarından biri olan ve kısa süre önce Oracle firması tarafından satın alınan Sun Microsystems tarafından geliştirilmiş, tamamen “Nesne Yönelimli Programlama (Object Oriented Programming)” paradigması üzerine tasarlanan çok güçlü ve önemli bir programlama dilidir. İlk zamanlar tasarlanan programlama dilinin adı, geliştirme takımının lideri olan James Gosling’in önerisi ile Oak olarak belirlense de, daha sonra Oak adında başka bir programlama dilinin var olduğu görülerek, dilin adı JAVA olarak belirlenmiştir.Java, programlama dilinden öte aslında bir platformdur. Platform bağımsızlığı Java’nın en önemli özelliklerinden biri olduğu bir gerçektir. Peki, platform bağımsızlığı derken neyi kastediyoruz? Platform bağımsızlığı kabaca, geliştirilen uygulamaların herhangi bir platforma bağımlı olmaması demektir. Örnek olarak, Java uygulamaları geliştirilirken Unix, Linux ya da Windows platformlarına herhangi bir bağımlılık yaratmaz. Bu da, yazılım geliştiricilerinin başındaki en önemli sorunlardan biri olan yazılımın platformlar arası taşınması (deployment) konusunda, geliştiricilere (developers) büyük bir avantaj sağlamaktadır. C ya da C++ programlama dilleri kullanılarak yazılan uygulamalar, geliştirildiği platforma özgü birtakım kütüphaneler kullanmak zorundadır. Bu da bir süre sonra, uygulamanın başka bir platformda çalıştırılması zorunluluğu ortaya çıktığında, yazılımın diğer platform için tekrar yazılması gerekliliğini ortaya çıkarır ki bu, hem zaman hem de para kaybı demektir.
Java, mükemmel bir programlama dili olarak bugün dünyanın en çok kullanılan programlama dillerinden biri değildir, aksine en çok kullanılan programlama dilidir. Tüm dünyadaki birçok önemli proje Java kullanılarak hazırlanmış ve hazırlanmaya devam etmektedir. Özellikle kurumsal uygulama alanında (Enterprise) Java bugün rakipsiz bir konumdadır.
Java, C++ ve Smalltalk programlama dillerinden esinlenerek hazırlanmıştır. Sözdizimi C++ a oldukça benzer. Fakat, getirdiği özellikler ve çalışma prensibi bu ve önceki programlama dillerinden önemli ölçüde farklılık gösterir. Daha önce de bahsettiğimiz gibi Java, platform bağımsızlığı ve uygulamaların değişik platformlarda kolayca taşınıp çalıştırılması için tasarlanmıştır. Bu yüzden Java’nın geliştirilme nedenlerinden biri C/C++ türevi dillerdeki gibi mutlak performans ve hız! değildir. Genel anlamda bakacak olursak, Java uygulamaları C/C++ dillerinden bir ölçüde yavaş çalışabilir. Fakat bu kesinlikle Java’nın performanssız ve yavaş çalışan bir dil olduğu anlamına gelmemelidir. Bilakis, Java ile geliştirilen büyük ve kapsamlı projeler C ile geliştirilen aynı ugulamadan daha performanslı bile olabilir.
Java’nın bir diğer tasarlanma sebebi, programcıların kolaylıkla hata yapabileceği , hata ayıklanmasının çok zor olduğu ve programların stabil olarak çalışmasını engelleyen birçok özelliğin otomatik olarak Java tarafından yapılmasıdır. Örnek olarak programcılara büyük güç sağlayan pointer kavramı, Java’dan çıkarılmıştır. Her ne kadar pointerlar yazılımcılara büyük bir esneklik ve güç verse de, hatalara açık ve hataların ayıklanmasında çok büyük sorunlar ortaya çıkarmaktadır. Öyle ki, onbinlerce belki de yüzbinlerce kod satırından oluşan bir uygulama da ufacık bir pointer hatası, tüm uygulamanın göçmesine ya da stabil bir şekilde çalışmasına engel bile neden olabilir. Öte yandan, C ve C++ gibi dillerde bellekten (memory/ram) alınan alanların bizzat programcı tarafından işletim sistemine iade edilmesi şarttır. Bu tür bellek işlemleri, eğer sisteme geri iade eilmezse bellekte şişmelere ve uygulamanın oldukça performanssız bir şekilde çalışmasına neden olur. Neyse ki Java, bu tür işlemleri yazılımcıların sorumluluğundan alarak, bellek iadesi gibi işlemleri Garbage Collector (Çöp Toplayıcısı) gibi mekanizmalar ile otomatik olarak halletmektedir. Tüm bu yenilikler ve özellikler Java’yı diğer dillere kıyasla, büyük projelerde birkaç adım öne geçirerek sağlam, performanslı uygulamalar geliştirilmesine olanak tanır.
Java Teknolojisinin Temelleri
Java basit, güvenli, sağlam, tamamen nesne yönelimli programlama paradigması üzerine kurulmuş, yüksek seviyeli ve platform bağımsız bir programlama dilidir. Java aynı zamanda, taşınabilir, yüksek performanslı, çoklu kanal desteğine doğrudan destek veren (multithreaded) ve küçük ölçedeki diğer makinalarda bile performanslı bir şekilde çalışan bir teknolojidir.
Tüm bu özellikler JVM (Java Virtual Machine) adındaki Java Sanal Makinası üzerine kurulmuştur. Java ile yazılan yazılım kodları çalıştırılmadan önce bytecode adı verilen ara forma dönüştürülerek JVM tarafından yorumlanarak makina koduna çevrilmektedir. Bu da Java’nın platform bağımsızlığı özelliğinin arkasındaki en önemli güçtür. Java ile yazılan programlar, bytecode adı verilen ara forma çevrildiği için, JVM kurulu herhangi bir işletim sisteminde kodu tekrar derlemenize gerek kalmadan doğrudan çalıştırabilirsiniz.
Tüm Java teknolojisi JVM adındaki sanal makina üzerine tasarlandığı için, program kodunuzu derlediğinizde ortaya çıkan bytecode lar doğrudan çalıştırılabilir değildir. Kod içinde bulunan, işletim sistemi ve donanımlarla olan işlemler JVM tarafından dinamik olarak belirlenerek, bytecode yorumlanarak makina koduna dönüştürülür.
Eğer Java programlamaya başlamak istiyorsanız, herhangi bir editör (notepad gibi) ile uygulamanızın kaynak kodunu (source code) oluşturmaya başlayabilirsiniz. Daha sonra java compiler (javac) ile hazırladığınız kaynak kodu bytecode a çevirebilir ve derlenen bu bytecode u JVM kurulu herhangi bir işletim sistemine taşıyarak uygulamanızı çalıştırabilirsiniz.
Comments
Post a Comment