Platform Bağımsızlık Kavramı Java
İlk bilgisayar ortaya çıktığında C \ C++ , Pascal ,Java gibi üst düzey diller yoktu. Farklı makinelerin donamın yapıları farklı olduğu için ,farklı marka ve model bilgisayarların makine dilleri de farklıydı. O nedenle bir programcı kullandığı makinenin makine dili ile iş yaptırabiliyordu. Makine dili öğrenmekte oldukça zordu ve öğrenilen makine dilli de farklı marka ve modellerinde geçerli olmuyordu. Bu zorunluluğu aşmak için önce assembly dilli ve hemen arkasından üst düzey diller ortaya çıktı.Programcılara büyük kolaylık getirdi artık işletim sistemi ve makineyi düşünmeden ,kaynak programı istediği dilde yazabiliyordu.
Şimdiler de adına prosedürel diller denilen FORTRAN, COBOL, Pascal, Modula, C gibi üst düzey diller uzun yıllar programcılar kullandılar. Lakin ortada bir problem vardı. Belirli bir işletim sistemi altında çalışan ,belirli bir tür makinelerde derlenen bir kaynak program , ancak o işletim sistemi altında çalışan o tür makinelerde çalışabiliyordu. İşletim sistemi ve/veya makine türü değişince; yani platform değişince, program orada çalışmıyordu; yeni platforma uygun bir derleyici ile yeniden derlenmesi gerekiyordu. Buna, kısaca platform bağımlılık diyoruz. Platform bağımlılıktan kastettiğimiz şey, bir kaynak programın belirli bir işletim sistemi altında çalışan belirli bir derleyici ile derlendiği ve ancak belirli bilgisayar türlerinde çalışabildiği gerçeğidir. Örneğin, Windows işletim sistemi altında çalışan bir PC de derlenen bir bilgisayar programını Macintosh ya da Linux işletim sistemi altında çalışan bir makinede koşturmak mümkün değildir.
Derleyici:Yüksek seviyeli programlama dilli ile yazılmış bir kaynak kod çalıştırılabilir makine koduna çeviren programdır. Amacı;programı bilgisayar tarafından anlaşılıp ,çalıştırabileceği hale getirmektir.
Problemin çözümü,platform bağımsız çalışabilecek bir dilin oluşturulması gerekiyordu.Bu problem Sun firmasının geliştirdiği Java ile çözüldü.Ama firmanın ası amacı bu sorunu çözmek değildi elektrikli ev aletlerinin kolay kullanılmasını sağlayacak bir dil geliştirmekti. Sun’ın programcısı James gosling 1995 de her platformda çalışan Java’yı oluşturdu. Farklı işletim sistemlerine ve farklı donanımlarına kurulabilen ortak bir sanal makine tasarladı.Adına JVM(Java Virtual Machine) denilen bu sanal makine ücretsiz dağıtıldı. JVM her platforma kolayca kurulabilir .Java dili ile yazılan kaynak kodlar .Java derleyicisi ile JVM de çalıştırılabilen bir tür makine diline dönüştürülür .Adına Java bycode denilen bu programJVM tarafından yorumlanır ve çalıştırılır. Java byte kod bir bakıma, prosedürel dillerde yazılıp derlenmiş kaynak programların işlevini yapar. Java basit, modern, nesne yönelimli, tip-korumalı ve C ile C++ dillerinin iyi özeliklerini almış bir dildir. Fazla olarak, her platformda çalışabilme yeteneğine sahiptir. Bu yetenek, onu yalnız bilgisayarlarda değil, internet uygulamalarına, cep telefonlarına, oyun makinelerine, ev aletlerine kadar geniş bir yelpazede uygulama alanı bulmasını sağladı. Bu nedenle, Java’yı hem programlama dili, hem de bir ortam olarak düşünebiliriz. Bu ortamda işletim sistemi, ağlar, internet programlama, veritabanı ve bütün orta katman (middleware) teknolojileri yer alır.