Javascript, web sayfalarında etkileşimli (interaction) dinamik içerik sağlamak ve kullanıcıyla iletişim kurmak için 1995 yılında Brendan Eich (Breden Mozilla projesinin, Mozilla Vakfının ve Mozilla şirketinin kurucusu ortağı) tarafından C, Scheme, Java, Perl, Python gibi dillerden etkilenerek yazılmış ve geliştirilmiş ardından Netscape Netscape Communications Corporation tarafından geliştirilen, ama şimdi AOL tarafından geliştirilen tarayıcıların genel adıdır. firması tarafından Netscape Navigator 2.0 web tarayıcısında desteklenerek piyasaya sürülmüştür. Başlangıçta adı LiveScript olsa da firma bu ismi Java teknolojilerinin (Java Applet)JAVA Applet, JavaByteCode formunda dağıtılan küçük çaplı Java uygulamalarına verilen addır. JavaVirtualMachine yüklü olan bilgisayarlarda web tarayıcısının içerisinden çalıştırılabilirler ya da bağımsız bir uygulama olan Sun'ın AppletViewer uygulaması ile de test edilebilirler. piyasaya çıkmasıyla Javascript olarak değiştirmiştir. Javascript böylelikle bir script dili olarak ortaya çıkmıştır.

Javascript dilini, C dilinin web sayfalarına uyarlanmış basit bir sürümü olarak düşünülebilir. Javascript dili benzerliğine rağmen Java ile birbirinden bağımsız ve farklı dillerdir. Java bir programlama dilidir. Javascript ise ilk başta bir programlama dili olarak ortaya çıkmış olmasa da artık bir hemen hemen bir programlama dili haline gelmiştir (Kısaca JS olarak yazılır).

Başlangıçta sadece Netscape tarafından desteklenen dil, bugünlerde bütün tarayıcılar tarafından desteklenmekte ve kullanılmaktadır. Temel script komutları hemen hemen bütün tarayıcılarda çalışmasına rağmen ileri düzeydeki JS komutları tarayıcıdan tarayıcıya farklılıklar gösterebilmektedir. Hangi tarayıcının JS komutlarını ne düzeyde destekleyip desteklemediğini http://kangax.github.io/compat-table/es5/ adresinden bakarak görebilirsiniz.

JS ilk olarak profesyonel olmayan programcıları hedefleyerek geliştirildi. 1996 yılın Kasım ayına gelindiğinde ise Netscape Firması JS’in endüstri standardı olarak belirlenmesi amacıyla Ecma International‘a başvuruda bulunduğunu ilan etti. Bu başvurunun sonucunda standart haline getirilen bu sürüm ECMAEuropean Computer Manufacturers Association (ECMA), Avrupa Bilgisayar Üreticileri Birliği Script olarak isimlendirildi ve 1997 yılının Haziran ayınca Ecma International, Ecma-262 adında ilk sürümünü duyurdu. Halihazırda EcmaScript 5.1 sürümüdedir ve bu sürüm ve JS 1.8.5 tarafından desteklenmektedir. Ecma-262 standardı ISO (International Organization for Standardization) tarafından ISO-16262 olarak onaylanmıştır.

JS günüzde kullanılan JScript, JScript.NET, Objective-J, TIScript dillerin oluşturulması ve geliştirilmesine yardımcı olmuştur. Bugün Internet Explorer tarayıcısı her ne kadar birbirine çok benzesede hem JS dilini hemde JScript dilini yorumlayabilmektedir.

JavaScript son derece çok yönlü bir dildir. Web’de resim galesinden, tuş tıklatmalara hatta 2D ve 3D grafik ve oyun yapımına kadar pek çok şey yapılabilir. JavaScript geliştiricileri, temel JavaScript dilini kullanarak çok çeşitli araçlar yazdılar ve bu araçlar minimum çaba ile çok sayıda işlevselliği beraberinde getirdi. Bunlar temel olarak şunları içerir:

  • Uygulama Programlama Arabirimi (API) – Web tarayıcılar içine yerleştirilmiş, dinamik olarak HTML oluşturma ve CSS stillerini ayarlama, kullanıcıların web kamerasından bir video akışını toplama ve işleme veya 3D grafik ve ses örneği oluşturma gibi işlevleri kapsar.
  • Geliştiricilerin sitelerinde Twitter veya Facebook gibi diğer içerik sağlayıcılardan işlevsellik eklemelerine izin veren üçüncü taraf API’lar.
  • Üçüncü taraf framework ve library, sitelerinizi ve uygulamalarınızı hızla oluşturmanıza izin vermek için geliştirilmiş araçlar.

JS ve Java

JS ve Java bazı açılardan birbirine benzese bile temelde farklı teknolojilerdir. JS’de güçlü bir tür denetimi olmamasına rağmen Java’da çok güçlü bir tür denetimi ve statik yazım kuralları vardır. Ancak yazım kuralı Syntax bakımından birbirine çok benzemektedir. JS çok yaygın olan sınıf tabanlı nesne modelleme yerine sadece prototip temelli nesneleme modeli vardır. Bu geliştirmede dinamik ve miras sağlar. Yani kalıtım bir çok nesne ile değişebilir veya aktarılabilir. JS’de fonksiyonlar, gevşek olarak yazılan tiplerden (Loose Typing) veya yürütülen nesnelerin özelliklerinden olabilir.

/* Javascript Örnek gevşek değişken tanımı (Loose Typing) */
var a = 1;
var b = "bir";
/* Java değişken tanımı */
int a = 1; // int ile deklare ediliyor. 
String b = "bir" // String ile deklare ediliyor. 

JS, Java’ya göre çok serbest biçimli bir dildir. JS’de tüm değişkenleri, sınıfları ve yöntemleri tanımlamak zorunda değilsinizdir (“use strict” komutu ile bu esneklik ortadan kaldırılabilir. Detaylı bilgi) . Ayrıca yöntemlerin Java’da olduğu gibi public, protected veya private olup olmadığını kontrol etmek zorunda değilsinizdir ve bu arabirimleri belirtmek zorunda da değilsinizdir. Java, hızlı yürütme ve tip güvenliği için tasarlanmış sınıf (class) temelli bir programlama dilidir. Bu bir tamsayıyı bir nesne referansına atayamacağınızı veya java bayt kodlarını bozarak özel belleğe erişemeyeceğiniz anlamına gelir. Java’da sınıf miras ve sıkı yazım kuralı ciddi bir nesne hiyerarşi kurmayı gerektirir. Buna benzer gereksinimler, Java programlamayı JS’ye göre daha karmaşık hale getirir.

JS ile Java Karşılaştırılması

JSJava
Nesne odaklı bir dildir. Nesne türleri arasında hiç bir ayırım yoktur. Miras (Inheritance) prototip mekanizması üzerinden yapılır ve özellikler ve yöntemler herhangi bir nesneye dinamik olarak eklenebilir. Sınıf tabanlı bir dildir. Nesneler sınıf hiyerarşisinden miras kalan sınıflara ve örneklere ayrılır. Sınıflar ve örnekler dinamik olarak eklenen özellikler veya yöntemlere sahip olamazlar.
Değişken veri türleri için herhangi bir bildirim yapılmayabilir (dinamik yazım).Değişken veri türleri her zaman bildirilmelidir. (statik yazım).

JS ve Java arasındaki farklar hakkında daha fazla bilgi almak için nesne modeli Detayları sayfasına bakabilirsiniz. 

JS küçük bir dil olmasına rağmen çok esnektir ve geliştiriciler bu dil üzerine çok fazla araç geliştirme yapmışlardır. Bu geliştirmeler sayesinde pek çok sorunu kısa zamanda çözüme ulaştırmak mümkündür.  HTML5 ile birlikte gelen canvas HTML5 ile birlikte gelen ve web sayfalarında grafik çizmek için kullanılan yeni bir tag‘ın daha etkileşimli siteler yapmak için kullanılan Adobe Flash’ı yavaş yavaş geride bırakması, Cloud teknolojilerinin gelişmesi ve bu teknolojilerde de JS’in vazgeçilmez bir dil haline gelmesiyle programcılar JS’nin üzerinde daha çok durmaya başlamıştır. Şu an JS ile aklına gelen hemen hemen her şeyi yapılabilir. Bunlara 2D ve 3D oyunlar ve veritabanı kullanan uygulamalarda dahildir. JS geliştiriciler için vazgeçilmez bir programlama özgürlüğü vermesi, özellikle web sayfalarında dinamik metin ve olayların yapılabilmesi, kullanıcının girdiği değerleri okuyabilmesi ve sayfanın buna göre tepki vermesini sağlayabilmesi çerezler ve HTML5 ile birlikte gelen offline HTML5 Application Cache web tabanlı uygulamalarda Cache mekanizması ile sitenin kullanıcılarının offline olduğu durumlarda da sitenin belirli içeriğine erişmesini sağlayan teknolojidir. özellikleri kullanılabilmesi ve buna benzer bir çok özellikten dolayı hala vazgeçilmezliğini korumaktadır.

Son olarak JS dosyalarının dosya uzantısı .js’dir.

Kaynaklar :

  1. https://developer.mozilla.org;
0 cevaplar

Cevapla

Want to join the discussion?
Feel free to contribute!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir