JavaScript ile uygulama geliştirme . 1- Giriş

JavaScript ile uygulama geliştirme.

90 ların sonun da, netscape (eğer bu ismi daha önce duymadıysanız, evet hala gençsiniz)  kullanıcıların, internet tarayıcılarında, sunucu iletişimi olmadan, tarayıcının içine gömülmüş bir script engine sayesinde, web sayfasıyla etkileşime girmesini artırmak/kolaylaştırmak için bir proje başlatırç

İsmi ilk baslar da Javascript olmasa da, sonradan o dönemler Java çok popüler olduğu için(Bu ünden yararlanmak adına), Netscape firması Java ile (yine ozamanlar Sun MS. ) bir ticari anlaşma yaparak, bu geliştirdiği dile JavaScript adını verir. Ve Javascript 90 ların sonundan itibaren hayatımıza girer.

O günden bugüne kadar, yazılım geliştiren hemen herkesin az çok hasır neşir olmak zorunda kaldığı bir süreçle birlikte, internetin en çok kullanılan dili haline gelir. İlk baslarda, DOM manipulation / HTML ve CSS etkileşimi için kullanılsa da, 2000 lerin ortalarından itibaren, farklı kullanım alanları bularak istemci-sunucu etkileşimi içinde de kullanılmaya başlanır ve iyice hayatımıza yerleşir.

Javascript , “first class programming language”  olarak artık iyice hayatımıza girmiş durum da. 2000-2005 yılları arasında çoğunlukla, DOM manipulation / HTML yapısını yönetmek için kullandığımız bu esnek scripting dili, sonrasında Ajax, trendiyle; istemci/sunucu iletişiminin de bir parçası haline gelerek,  bilinen kulanım alanlarını aşmaya başladı.

Ve en son olarak Node. js ile 2010 lu yıllardan itibaren sunucu taraflı uygulamalar dan,  gömülü sistemlere (IOT cihazlarını da buna ekleyin) çok geniş bir yelpazede  uygulama geliştirebileceğimiz çok güç lü bir dil olarak büyüyüp gelişdiğine şahit olduk.

JavaScript, node.js ile artık  sadece bir “scripting dili” ya da, temel web ara yüzü için istemci tarafında dinamik işlemler yönetmek için kullandığımız yapıdan sıyrılıyordu.

2012 ye geldiğimiz de ise, kurumsal seviyelerde, büyük web uygulamaların dan, Mobil uygulamalara, Network trafiğini yöneten yazılımlardan, web socket / webrtc gibi yeni protokoller le Real-time / Gerçek zamanlı uygulamalara kadar geniş bir yelpazede uygulamalar geliştirebileceğimiz, git gide daha da zenginlesen gelişen bir ekosistemle birlikte, artık yazılım dünyasında ki en ciddi oyunculardan biri haline geliyordu.

O kadar yaygın kullanılmaya başlandı ki, MongoDB gibi veritabanlarindan, GIS sistemlerine kadar birçok platform, kendi alt yapılarını, yeni bir sorgulama dili ya da sentaksı yerine, Javascript le çalışabilir / sorgulanabilir halde dağıtmaya başlıyorlardı.

Sunucu ve istemci tarafında tek bir dil ile web uygulamaları / API sunucuları geliştirip, uygulamanızı yine javascript ile mobil platformlara taşıyabilme imkânının yanında, veri tabanlarını bile bu dille sorgulayabilir hale geldik bugünlerde.

Javascript in Platform/Standart problemi ve Yeni nesil javascript eko sistemi

Biz, bu yazı dizisin de , Javscriptin en yeni sürümü ve javascript ekosistemini node.js ile öğrenmeye / tanımaya çalışacağız. Ama öncesinde, Javascriptle ilgili bir kaç genel kavram ve sorun üzerinde durmak da fayda var diyebiliriz.

Javascript  dünyasındaki muhtemelen en önemli problem, (özellikle tarayıcı dünyasında)  bir den çok javascript run-time / Javascript yorumlayıcısı olması diyebiliriz.

Kodlarımızı yazarken bir birinden farklı platformlar için, ya da ayni platformun bir önceki sürümü için çoğu zaman ekstra gayret sarf etmek zorunda kalmamız veya chrome için farklı firefox için farklı kod yazmak zorunda kaldığımız durumlarla karşılaştığımız dönemler çok da uzak sayılmaz.

Muhtemelen sizde javascript e çok hâkim olmasanız bile az çok şöyle bir şey duymuşsunuzdur.

Jquery yada Angular yada x freamework u Internet Explorer 10 ve üzerini destekleyecek, yada Andorıd in varsayılan tarayıcısı web socket desteğine sahip değil. vb.

Javascript için standart “herkesin ortak olarak kullanabileceği” bir run-time mevcut değil. Ya da başka bir değişle, her bir firma kendi run-time ini geliştirmekte. (Javascript run-timelar biraz dan… )

Örneğin, C# ve. NET/CLR düşünün ya da Java ve JDK/JVM yi, bu platformların arkasında, firmalar + açık kaynak camiası olsa da, en nihayetinde sisteminize kurduğumuz run-time, compiler vs. tek dir. Microsoft C# / NET ve CLR i, Oracle ve community de Java/JDK ve JVM den sorumludur. yazacağınız C# yada Java kod hep tek bir run time üzerinde çalışacaktır.

Bu durum Javascript için yukarıda da belirttiğimiz gibi geçerli değildir. Bir web sitesindeki javascript kodlarını çalıştırmak için, bir yerlerden, bir javascript derleyicisi / yorumlayıcısı indirdiğinizi hatırlıyor musunuz?

İhtiyacınız olan tek şey genelde ya bir tarayıcı ya da node. js gibi yeni nesil bir run-time dir. Chrome, IE, Firofox vs. Hepsi, farklı Javascript yorumlayıcısına sahip platformlardır. Başka bir değişle her firma kendi JS run-time ini üretip kendi ürünlerinde kullanmaktadır. Biz bir tarayıcı indirip kullanmaya başladığımızda ( örneğin Google Chrome) Tarayıcı ile birlikte gömülü bir Javascript yorumlayıcısını da sistemimize dâhil etmiş oluyoruz.

Node. js ile bu sorun en azından, sunucu tarafında az çok çözülmüş durum da diyebiliriz. Node. js Google tarafından geliştirilen ve Chrome da kullanılan V8 isimli JS run-time i biraz özelleştirerek kullanmak ta. En azından tarayıcılar dışında çalışacak javascript kodları yazarken temel alacağımız tek bir platform var “Node. js”. 

Javascript Runtime  – Javascript yorumlayıcıları.

Az çok hepimizin bildiği aşağıdaki listede, şuan en yaygın olarak kullanılan runtime lara bakarak başlayalım.

Yukarıdaki listeye ekleyebileceğiniz daha çok aday var, fakat bunlar az çok hepimizin bildiği ya da uygulama geliştirirken karşımıza çıkacak platformlar. Dikkat ettiyseniz Node. js hariç diğerleri Tarayıcılar için  geliştirilmiş.  Node. js ise Javascript i tarayıcılar dışına çıkaran ve javascript i tam anlamıyla  yazılım dili haline getiren bir platform. bizde bu yazı dizisinde Node.js ile uygulama geliştirmeye ağırlık  vereceğiz.

ECMAScript

Özellikle tarayıcı dünyasındaki bu dağınıklık yüzünden, Avrupalı bir vakıf/organizasyon olan Ecma International javascript için yorumlayıcı / run-time geliştirecekler için, bazı standartlar yayınlamaya baslar, zaman içinde, bu standartlar kabul edilir. Ve Javascript run-time geliştirenler, geliştirdikleri ürünlerinde bu standartları temel alarak geliştirme yapmaya başlarlar. Ecmascript vakfı, her hangi bir derleyici / yorumlayıcı yayınlamamak da sadece, standartları belirlemektedir. Ecma vakfi, sadece JavaScript icin degil bir cok baska dil ve platform icinde standartlar yayinlamaktadir.

ECMAScript, Javascript için yenilikler güncellemeler yayımlasa da, maalesef tarayıcılar bu yenilikleri çok hızlı bir şekilde kendi bünyelerine yansıtmıyorlar. Sözde hepsi EcmaScript e hızlı bir şekilde uyum sağlayacak gibi gözükseler de gerçek hayatta bu böyle olmuyor.

Javascript in en yeni halini tarayıcılarda kullanmak için bazı alternatifler ara çözümler mevcut fakat bu konuyu Angular 2 dizisinde az çok ele aldığımız için ve node. js eodaklanacağımız için konuyu tarayıcılar acısından burada bırakıyorum.

Javascriptin bu yaşam döngüsü içinde, en güncel ve yeni hali diyebileceğimiz sürümü ise ES2015 ya da ES6 standartlarını temel alan surum.  ES6 veya EcmaScript 2015 teknik olarak ayni surumu  / standarttı tanımlasa da, javascript dünyasında ki kısa bir isim karmaşasından dolayı, ayni surumun iki farklı isimlendirmesiyle karşı karşıya kaldık. Son olarak , “Yıl esaslı” isimlendirme kabul gördü ve bundan sonra ES2015 (sonraki surum içinde ES2016. 17. 18 vs.) anılmasına karar verildi. Ben de yazıda sadece ES2015 i kullanacağım.

Bu yazı, daha çok genel bir fikir verme adına girizgâh diyebileceğimiz bir yazı idi. Bir sonraki yazıda Node. js ile birlikte Javascript in en son sürümünü öğrenmeye ve kod  yazmaya başlayalım inşallah.

1 thought on “JavaScript ile uygulama geliştirme . 1- Giriş

Leave a Reply

Your email address will not be published. Required fields are marked *