giriiş
JavaScript, HTML ve CSS ile birlikte web sitesi geliştirmek için kullanılan üç ana dilden birini temsil eden bir programlama dilidir. HTML ve CSS bir web sitesine yapı ve stil kazandırırken, JavaScript web sitenize işlevsellik ve davranışlar eklemenize olanak tanır. Bu, ziyaretçilerin web sitenizle çeşitli yaratıcı şekillerde etkileşim kurmasını sağlar.
İlk tarayıcı
Grafiksel kullanıcı arayüzüne sahip ilk popüler web tarayıcısı Mosaic, 1993 yılında piyasaya sürüldü. Teknik bilgisi olmayan kişilerin de erişebildiği bu tarayıcı, World Wide Web'in (WWW) hızlı büyümesinde önemli bir rol oynadı. Mosaic'in ilk geliştiricileri daha sonra Netscape'i kurdu ve Netscape Navigator adlı daha gelişmiş bir tarayıcıyı 1994 yılında piyasaya sürdü. Bu tarayıcı kısa sürede en yaygın kullanılan tarayıcı haline geldi.
Web'in bu ilk yıllarında, web sayfaları yalnızca statik olabiliyordu ve tarayıcıya yüklendikten sonra dinamik bir şekilde hareket etme yeteneğinden yoksundu. Gelişmekte olan web geliştirme dünyasında, bu sınırlamayı ortadan kaldırma isteği vardı ve Netscape, 1995 yılında Navigator'a bir programlama dili eklemeye karar verdi. Bu hedefe ulaşmak için iki yol izlediler: Java programlama dilini entegre etmek için Sun Microsystems ile ortaklık kurmak ve Scheme dilini entegre etmek için Brendan Eich'i işe almak.
Netscape yönetimi kısa süre sonra Eich için en iyi seçeneğin, Java'ya benzer ve Scheme veya diğer mevcut programlama dillerine daha az benzeyen bir sözdizimine sahip yeni bir dil icat etmek olduğuna karar verdi. Yeni dil ve yorumlayıcı uygulaması ilk olarak Eylül 1995'teki beta sürümünün bir parçası olarak LiveScript olarak adlandırılsa da, Aralık ayındaki resmi sürümde adı JavaScript olarak değiştirildi.
JavaScript isminin seçilmesi kafa karışıklığına yol açmış ve doğrudan Java ile ilişkili olduğu izlenimini vermiştir. O dönemde dot-com patlaması başlamıştı ve Java popüler bir yeni dildi, bu yüzden JavaScript ismini Netscape'in bir pazarlama taktiği olarak değerlendirdim. Ancak asıl tasarım hedefi aslında tamamen ayrı bir "kitleler için dil" veya "programcı olmayanların dinamik ve etkileşimli web siteleri oluşturmasına yardımcı olmak"tı. Elbette, Netscape'in LiveWire Pro web geliştirme aracı ve Ajax, ServerJS, asm.js ve node.js gibi bağımsız JavaScript çalışma zamanlarının ortaya çıkmasıyla durum artık böyle değildi.
Microsoft tarafından onaylandı
Microsoft, 1995 yılında Internet Explorer'ı piyasaya sürdü ve bu da Netscape ile bir tarayıcı savaşına yol açtı. JavaScript cephesinde ise Microsoft, Navigator yorumlayıcısını tersine mühendislik yoluyla kullanarak JScript adlı kendi yorumlayıcısını oluşturdu.
JavaScript, CSS ve HTML uzantıları için ilk destekle birlikte ilk olarak 1996 yılında yayınlandı. Bu uygulamaların her biri, Navigator'daki benzerlerinden önemli ölçüde farklıydı. Bu farklılıklar, geliştiricilerin web sitelerinin her iki tarayıcıda da düzgün çalışmasını zorlaştırdı ve "Netscape'te En İyi Görüntülenen" ve "Internet Explorer'da En İyi Görüntülenen" logolarının birkaç yıl boyunca yaygın olarak kullanılmasına yol açtı.
JScript'in ortaya çıkışı
Netscape, Kasım 1996'da JavaScript'i, tüm tarayıcı satıcılarının uyabileceği standart bir spesifikasyonun başlangıç noktası olarak Ecma International'a sundu. Bu, Haziran 1997'de ilk ECMAScript dil spesifikasyonunun resmi olarak yayınlanmasına yol açtı.
Standartlaştırma süreci birkaç yıl devam etti ve Haziran 1998'de ECMAScript 2, Aralık 1999'da ise ECMAScript 3 yayımlandı. ECMAScript 4 üzerindeki çalışmalar ise 2000 yılında başladı.
Bu arada Microsoft, tarayıcı pazarında giderek daha fazla hakim konuma geldi. 2000'lerin başında Internet Explorer'ın pazar payı 'e ulaştı. Bu, JScript'in web'de istemci tarafı betik yazımında fiili standart haline geldiği anlamına geliyordu.
Microsoft başlangıçta standart sürecine katılmış ve bazı önerileri JScript dilinde uygulamaya koymuş, ancak sonunda Ecma çalışmalarına katılmayı bırakmış ve ECMAScript 4'ün üretimi durdurulmuştur.
Büyüme ve standardizasyon
2000'lerin başında Internet Explorer'ın hakimiyeti sırasında, ön uç geliştirme durakladı. Bu değişim, Netscape'in halefi Mozilla'nın Firefox tarayıcısını piyasaya sürdüğü 2004 yılında başladı. Firefox birçok kişi tarafından beğenildi ve Internet Explorer'dan önemli bir pazar payı aldı.
Mozilla, 2005 yılında ECMA International'a katıldı ve XML için ECMAScript (E4X) standardı üzerinde çalışmalar başladı. Bu durum, Mozilla'nın Macromedia (daha sonra Adobe Systems tarafından satın alındı) ile birlikte çalışarak ECMAScript 4 taslağını temel alan ActionScript 3 diline E4X'i entegre etmesine yol açtı. Amaç, ActionScript 3'ü yeni ECMAScript 4 olarak standartlaştırmaktı. Bu amaçla Adobe Systems, Tamarin uygulamasını açık kaynaklı bir proje olarak yayınladı. Ancak Tamarin ve ActionScript 3, standart istemci tarafı betiklemeden çok farklıydı ve Microsoft'un iş birliği olmadan ECMAScript 4 hiçbir zaman hayata geçirilemedi.
Bu arada, ECMA'nın çalışmalarıyla bağlantısı olmayan açık kaynak topluluğunda çok önemli gelişmeler yaşanıyordu. 2005 yılında Jesse James Garrett, Ajax terimini ortaya attığı ve JavaScript'in omurgasını oluşturduğu, verilerin arka planda, sayfanın tamamen yeniden yüklenmesini gerektirmeden yüklenebildiği web uygulamaları oluşturmak için bir dizi teknolojiyi tanımladığı bir teknik inceleme yayınladı. Bu, açık kaynak kütüphaneleri ve bunların etrafında oluşan toplulukların öncülüğünde bir JavaScript rönesansını başlattı. jQuery, Prototype, Dojo Toolkit ve MooTools dahil olmak üzere birçok yeni kütüphane oluşturuldu.
Google, 2008 yılında rakiplerinden daha hızlı bir V8 JavaScript motoruyla Chrome tarayıcısını tanıttı. En önemli yenilik, tam zamanında derleme (JIT) olduğundan, diğer tarayıcı üreticilerinin motorlarını JIT için yeniden oluşturmaları gerekti.
Temmuz 2008'de, bu farklı taraflar Oslo'da bir konferans için bir araya geldi. Bu, 2009 başlarında ilgili tüm çalışmaları birleştirerek dili ileriye taşımak için nihai bir anlaşmaya varılmasını sağladı. Sonuç, Aralık 2009'da yayınlanan ECMAScript 5 standardıydı.
Ergenliğe ulaşmak
Dil üzerindeki iddialı çalışmalar birkaç yıl boyunca devam etti ve 2015 yılında çok sayıda resmi ekleme ve düzeltme içeren ECMAScript 6'nın yayınlanmasıyla sonuçlandı.
Ryan Dahl tarafından 2009 yılında Node.js'nin geliştirilmesi, JavaScript'in web tarayıcıları dışında kullanımında önemli bir artışa yol açtı. Node, V8 motorunu, bir olay döngüsünü ve giriş/çıkış API'lerini bir araya getirerek kendi kendine yeten bir JavaScript çalışma zamanı sistemi ortaya çıkardı. 2018 itibarıyla Node milyonlarca geliştirici tarafından kullanılıyordu ve npm, dünyadaki yönetilen paketler arasında en fazla modüle sahip olanıydı.
ECMAScript taslak spesifikasyonu artık GitHub'da açık bir şekilde tutuluyor ve sürümler, düzenli yıllık anlık görüntülerle üretiliyor. Dildeki olası revizyonlar, kapsamlı bir teklif süreciyle inceleniyor. Geliştiriciler artık sürüm numaraları yerine, yaklaşan özelliklerin durumunu tek tek inceliyor.
Mevcut JavaScript ekosistemi birçok kütüphane ve çerçeve, yerleşik programlama uygulamaları ve web tarayıcıları dışında da önemli ölçüde JavaScript kullanımı içermektedir. Ayrıca, tek sayfalık uygulamaların ve JavaScript ağırlıklı diğer web sitelerinin yükselişiyle birlikte, geliştirme sürecine yardımcı olmak için çeşitli dönüştürücüler oluşturulmuştur.
Ticari marka
“"JavaScript", Oracle Corporation'ın Amerika Birleşik Devletleri'ndeki ticari markasıdır. Ticari marka ilk olarak 6 Mayıs 1997'de Sun Microsystems'a verilmiş ve 2009 yılında Sun'ı satın almalarıyla Oracle'a devredilmiştir.
Web sitesi kullanıcı tarafını kullanma
JavaScript, web'in baskın istemci tarafı betik dilidir ve tüm web sitelerinin 'i tarafından kullanılmaktadır (2022 ortası). Betikler, HTML belgelerine gömülür veya bu belgelerin içinde kullanılır ve DOM ile etkileşime girer.
Tüm büyük web tarayıcılarında, kullanıcının cihazında kod çalıştıran yerleşik bir JavaScript motoru bulunur.
Komut dosyasıyla yazılmış davranış örnekleri
- Ajax veya WebSocket aracılığıyla, sayfayı yeniden yüklemeden bir web sayfasına yeni içerik yüklemek. Örneğin, sosyal medya kullanıcıları mevcut sayfadan ayrılmadan mesaj gönderip alabilir.
- Web sayfası animasyonları, nesnelerin görünürlüğünü ve boyutunu değiştirme, onları hareket ettirme gibi.
- Tarayıcı oyunları oynayın.
- Akışlı medya oynatımını kontrol edin.
- Açılır reklamlar veya uyarı kutuları oluşturun.
- Verileri bir web sunucusuna göndermeden önce bir web formunun giriş değerlerinin doğrulanması.
- Kullanıcı davranışları hakkında bilgi kaydedip sunucuya gönderir. Web sitesi sahibi bu verileri analiz, reklam takibi ve kişiselleştirme için kullanabilir.
- Kullanıcıyı başka bir sayfaya yönlendir.
- Verileri depolama veya IndexedDB standartları aracılığıyla kullanıcının cihazında saklayın ve alın.
Web kütüphaneleri ve çerçeveleri
2012 yılına gelindiğinde web sitelerinin 'inden fazlası istemci tarafındaki betiklemeleri için üçüncü taraf JavaScript kütüphanesi veya web çerçeveleri kullanıyordu.
Tepki ver
React (React.js veya ReactJS olarak da bilinir), bileşen tabanlı kullanıcı arayüzleri oluşturmak için ücretsiz ve açık kaynaklı bir ön uç JavaScript kütüphanesidir[41][42]. Meta (eski adıyla Facebook) ve bir geliştiriciler ve şirketler topluluğu tarafından yönetilmektedir.
React, Next.js gibi çerçevelerle tek sayfalık, mobil veya sunucu tarafından işlenen uygulamalar geliştirmek için kullanılabilir. React yalnızca kullanıcı arayüzü ve DOM bileşenlerinin işlenmesiyle ilgilendiğinden, React uygulamaları genellikle yönlendirme ve diğer istemci tarafı işlevleri için kütüphanelere güvenir. React'ın temel avantajlarından biri, yalnızca sayfanın değişen kısımlarını yeniden işleyerek, değişmeyen DOM öğelerinin gereksiz yere işlenmesini önlemesidir.
açısal
Angular (aynı zamanda "Angular 2+" olarak da anılır)[48], Google'daki Angular ekibi ve bireylerden ve şirketlerden oluşan bir topluluk tarafından yönetilen, ücretsiz, açık kaynaklı, TypeScript tabanlı tek sayfalık bir web uygulama çerçevesidir. Angular, AngularJS'yi oluşturan aynı ekip tarafından tamamen yeniden yazılmıştır.
jQuery
2012 yılında jQuery, web sitelerinin 'inden fazlası tarafından kullanılan en popüler ön uç kütüphanesiydi. Hâlâ yaygın olarak kullanılsa da, popülaritesi daha yeni kütüphaneler ve çerçeveler tarafından geride bırakıldı.
Vanilya JS
"Vanilla JS" gibi çerçeve adları, sıradan JavaScript'in başka bir adıdır. Hiçbir kütüphane veya çerçeve kullanmayan, bunun yerine tamamen standart JavaScript işlevlerine güvenen web siteleri için icat edilmiştir.
Diğer kullanımlar
JavaScript'in kullanımı web tarayıcısı kökenlerinin ötesine geçmiştir. JavaScript motorları artık hem sunucu taraflı web sitesi dağıtımı hem de tarayıcı dışı uygulamalar için çeşitli diğer yazılım sistemlerine yerleştirilmiştir.
Sunucu tarafı JavaScript kullanımını teşvik etmeye yönelik ilk girişimler Netscape Enterprise Server ve Microsoft Internet Information Services'dı, ancak bunlar küçük çaplı girişimlerdi. Sunucu tarafı kullanımı nihayet 2000'lerin sonlarında Node.js ve diğer yaklaşımların geliştirilmesiyle artmaya başladı.
JavaScript'te uygulanan davranışa sahip birçok uygulama oluşturmak için Electron, Cordova, React Native ve diğer uygulama çerçeveleri kullanılmıştır. Tarayıcı dışı diğer uygulamalar arasında PD belgelerini betiklemek için Adobe Acrobat desteği ve JavaScript ile yazılmış GNOME Shell uzantıları yer almaktadır.
JavaScript son zamanlarda bazı gömülü sistemlerde, genellikle Node.js kullanılarak ortaya çıkmıştır.
Yürütme ortamı
JavaScript, betiklerin ortamla (örneğin bir web sayfası DOM'u) etkileşime girebileceği nesneler ve yöntemler sağlamak için genellikle bir çalışma zamanı ortamına (örneğin bir web tarayıcısı) güvenir. Bu ortamlar tek iş parçacıklıdır. JavaScript ayrıca, betikleri (örneğin <script> öğeleri) dahil etme/içe aktarma olanağı sağlamak için de çalışma zamanı ortamına güvenir. HTML) را فراهم کند. این به خودی خود یک ویژگی زبان نیست، اما در اکثر پیاده سازی های جاوا اسکریپت رایج است. جاوا اسکریپت پیام های یک صف را در یک زمان پردازش می کند. جاوا اسکریپت یک تابع مرتبط با هر پیام جدید را فراخوانی می کند و یک فریم پشته تماس با آرگومان های تابع و متغیرهای محلی ایجاد می کند. پشته تماس بر اساس نیازهای تابع کوچک شده و رشد می کند. هنگامی که پشته تماس پس از تکمیل تابع خالی است، جاوا اسکریپت به پیام بعدی در صف ادامه میدهد. این حلقه رویداد نامیده می شود که به عنوان “اجرا تا تکمیل” توصیف می شود زیرا هر پیام قبل از در نظر گرفتن پیام بعدی به طور کامل پردازش می شود. با این حال، مدل همزمانی زبان، حلقه رویداد را غیر مسدودکننده توصیف میکند: ورودی/خروجی برنامه با استفاده از رویدادها و توابع پاسخ به تماس انجام میشود. این بدان معناست که، برای مثال، جاوا اسکریپت میتواند یک کلیک ماوس را در حالی که منتظر یک پرس و جو پایگاه داده برای بازگرداندن اطلاعات است، پردازش کند.
Sonuç
Günümüzde JavaScript'i tarayıcı, sunucu, mobil ve masaüstü uygulamaları da dahil olmak üzere her türlü programı yazmak için kullanabiliyoruz. Umarız bu makale, günümüzün internetteki en popüler programlama dilinin tarihi hakkında size iyi bir fikir vermiştir.









