JavaScript’i kim geliştiriyor?

Aycan Öğüt
Kodluyoruz
Published in
3 min readDec 14, 2021
JavaScript, TC39 and EcmaScript logos

Merhaba, bu yazımda JavaScript dilinin kim tarafından, hangi şartlar altında geliştirildiğini anlatmaya çalışacağım.

Zamanımın ve enerjimin hatrı sayılır bir kısmını bu dilin nasıl çalıştığı, spesifik koşullar altında nasıl davrandığı ve tüm bunlar gerçekleşirken arka planda neler döndüğü gibi konulara ayırıyorken aklıma farklı bir soru geldi. Bu dili kim geliştiriyor?

Kyle Simpson’un kitap serisi You Don’t Know JavaScript Yet’in giriş kitabı olan Getting Started içerisindeki Language Specification bölümünü okurken kafamda oluşan sorulardan bazılarına yanıtlar buldum.

Burada karşılaştığım ECMA, ECMAScript ve TC39 gibi terimlerden ayrıntılı olarak bahsetmek istiyorum.

ECMA (European Computer Manufacturers Association Script)

ECMA International (Avrupa Bilgisayar Üreticileri Derneği), bilgi ve iletişim teknolojileri standartlarını geliştiren ve kar amacı gütmeyen uluslararası bir organizasyondur. 1961 yılında İsviçre’de kurulmuştur ve ECMA standartlar birliği olarak bilinir. JavaScript dili için temel şartname olan ECMA-262 şartnamesini (ECMAScript) koruyan kuruluş olmakla tanınır.

ECMAScript a.k.a JavaScript (ES)

Brendan Eich tarafından 1995 yılında geliştirilmiş bir betik dildir (script language). İlk olarak Mocha, sonrasında LiveScript ve en nihayetinde 1995 yılında JavaScript adı ile Sun Microsystem ve Netspace tarafından duyurulmuştur. Adı bir pazarlama hamlesi olarak Java’dan türetilmiş ve tarayıcılarda çalışan, kullanıcı dostu ve basit bir dil ortaya çıkartmak amacıyla geliştirilmeye başlanmıştır. Günümüzde ECMA standartları dahilinde geliştirilmeye devam edilmektedir.

JavaScript development time chart by flaviocopes.

TC39 (Technical Committee number 39)

TC39, JavaScript dilini ECMAScript şartnamesi altında standartlaştıran bir kurum olan ECMA’nın bir parçasıdır. Yani bu dilin standartlarını belirleyen ve bu standartları korumayı ve geliştirmeyi hedefleyen bir kurul olarak tanımlanabilir. Yapılan çalışmaları gözden geçirmek, sorunları tartışmak ve teklifleri oylamak için düzenli olarak toplanan bu grup, dilin standartlarını uygun gördüğü şekilde değiştirme yetkisine sahiptir. Bu blog yazısının giriş kısmında ele aldığım soruların cevaplarını bu kısımda öğreneceğiz.

Dilin değişmesi için yapılan teklifler 5 aşamalı bir süreçten geçer.

Stage 0 (Strawperson / Saman adam)

TC39 üyeleri tarafından oluşturulan, henüz resmi teklif aşamasına gelmemiş fikirlerdir. Bu aşamada fikirler şekillenip birer teklife dönüştürülebilir ve komiteye sunulur. Bir sonraki aşamaya geçme kriterlerine uymayan ve aynı zamanda kesin olarak da reddedilmeyen teklifler bu aşamada fikir olarak geliştirilmeye devam edilebilir.

Stage 1 (Proposal / Teklif)

Bu aşamada, spesifik bir sorunu çözen veya genel bir ihtiyacı karşılayan bir özellik, resmi bir teklif aracılığıyla komiteye sunulur. Teklifi sunan komite üyesi şampiyon olarak tanımlanır. Teklif edilen çözünümün hangi sorunu, ne şekilde çözeceği farklı katmanlarda, örnekler ile ele alınır. Sunulan özelliğin sağladığı API ve kullanılan algoritmalar örneklendirilir, üzerine tartışılır ve çıkabilecek potansiyel engeller, uygulama zorlukları gibi etkileşimler tanımlanır. Bu noktadan sonra teklif sonraki aşamaya geçirilebilir, bu aşamada geliştirilmeye devam edilebilir veya Stage 0 aşamasına geri döndürülebilir.

Stage 2 (Draft / Taslak)

Bu aşama, resmi şartnamede gerçekleştirilecek olan uygulamanın ilk taslağını içerir. Uygulamanın API ve syntax’inin olabildiğince tamamlanmış ve tarayıcı üzerinde çalışabiliyor olması beklenir. Teklif son haline gelene kadar içerik üzerinde değişiklikler yapılabilir. Bu aşamaya kadar gelmiş olan teklifler genellikle dile dahil edilir.

Stage 3 (Candidate / Aday)

Bu aşamada kullanıcılardan ve uygulayıcılardan alınan geri bildirimler sayesinde gerekli iyileştirmeler yapılır. İyileştirme süreci bittiğinde ve yapılması gereken testler başarılı sonuçlandığında bu aşama final olarak tanımlanır. Bu aşamadan sonra sadece kritik olan konular kapsamında değişiklikler gerçekleştirilir .

Stage 4 (Finished / Onay)

Son aşamadır. Teklifler, bu aşamada yapılan iki aşamalı uyumluluk testlerininde olumlu sonuç alırlarsa resmi ECMAScript standartlarına dahil olmaya hak kazanırlar ve dilin bir sonraki sürümüne dahil edilirler.

Yazımı sonlandırırken, bu konular hakkında yaşadığım kafa karışıklıklarını gidermeme yardımcı olan, dilin çalışma mantığı üzerinde güzel açıklamalarda bulunan birkaç kaynak paylaşmak istiyorum. “Garip” olarak nitelendirilebilecek bazı prensiplerine sahip olan bu dilin nasıl çalıştığına dair daha derin bir anlayış kazanmak isterseniz bu videolara göz atmanızı tavsiye ederim. Umarım bilgilendirici bir yazı olmuştur ve okuduğunuz için teşekkür ederim.

Kaynaklar

--

--