JAVASCRIPT NEDİR?

1995 yılının Mayıs ayında, Netscape Communications'ın ofislerinde Brendan Eich adında bir mühendise olağanüstü bir görev verildi: tarayıcı içinde çalışacak, HTML'i canlandıracak bir betik dili yaz — hem de on gün içinde. Eich bu süreyi "uykusuz on gün" olarak hatırlar. Ortaya çıkan ilk prototipin adı Mocha'ydı; aynı yıl içinde önce LiveScript'e, ardından pazarlama anlaşmaları sonucu JavaScript'e dönüştü. O on günlük sprintten doğan dil, bugün dünyadaki neredeyse her web sayfasının arkasında çalışıyor. Bu hikâye sadece bir nostalji değil — JavaScript'in tuhaflıklarını, gücünü ve neden bu kadar her yere yayıldığını anlamak için başlangıç noktası.
1. On Günde Doğan Bir Dil: Mocha'dan JavaScript'e
Netscape Navigator, 1990'ların ortasında web tarayıcılarının kralıydı ve şirket, HTML'in statik doğasını kıracak bir çözüm arıyordu. Yönetim, Java dilini Sun Microsystems ile ortaklık çerçevesinde tarayıcıya gömmeyi planlıyordu; ancak sayfa içine kısa kod parçaları yazmak isteyen tasarımcılar ve amatör geliştiriciler için daha hafif, daha esnek bir dile ihtiyaç vardı. Brendan Eich, Scheme benzeri fonksiyonel bir dil tasarlamak üzere işe alındığında karşısına çıkan kısıtlama netti: dil Java'ya benzemeli, kolay öğrenilmeli ve hemen teslim edilmeliydi.
İsim değişiklikleri dilin kimliğini de şekillendirdi:
- Mocha (Mayıs 1995): İlk prototip, Eich'in 10 günlük sprinti sonunda hayata geçti.
- LiveScript (Eylül 1995): Netscape Navigator 2.0 beta sürümünde bu adla tanıtıldı.
- JavaScript (Aralık 1995): Sun Microsystems ile yapılan pazarlama anlaşmasıyla son adını aldı — bu isim, Java'nın popülerliğinden faydalanma kararıydı.
İronik olan şuydu: Java ile JavaScript arasında, isim benzerliği dışında neredeyse hiçbir teknik akrabalık yoktu. Bu karışıklık, yıllarca süren bir yanlış anlama dalgasının kaynağı oldu.

2. JavaScript Aslında Ne Yapar?
JavaScript, başlangıçta sadece tarayıcı içinde çalışan bir dildi: bir formun boş bırakılıp bırakılmadığını kontrol etmek, bir butona tıklandığında metin değiştirmek, açılır menüler oluşturmak gibi küçük etkileşimler için yazılırdı. Bugün ise dilin çalışma alanı çok daha geniş:
- İstemci tarafı (client-side): Tarayıcıda DOM manipülasyonu, animasyonlar, form doğrulama, tek sayfa uygulamalar (SPA).
- Sunucu tarafı (server-side): Node.js sayesinde API'ler, web sunucuları, gerçek zamanlı uygulamalar.
- Mobil uygulama geliştirme: React Native, Ionic gibi araçlarla iOS ve Android uygulamaları.
- Masaüstü uygulamaları: Electron framework'ü ile VS Code, Slack, Discord gibi uygulamalar.
- Gömülü sistemler ve IoT: Espruino, Johnny-Five gibi platformlarla donanım kontrolü.
Tek bir dilin bu kadar geniş alana yayılması, modern yazılım tarihinde nadir rastlanan bir durum. Dilin temellerini öğrenmek isteyenler için hazırlanmış JavaScript eğitimi içeriklerinden yararlanabilirsiniz.
3. Dilin Teknik Karakteri: Neden Bu Kadar Esnek?
JavaScript, dinamik tip sistemine sahip, yorumlanan (interpreted) bir dildir. Bu, bir değişkenin türünün çalışma zamanında belirlendiği anlamına gelir; bir değişken önce sayı tutarken sonra bir metin saklayabilir. Eich'in 10 günde Scheme ve Self dillerinden esinlenerek tasarladığı dil, prototip tabanlı nesne yönelimi gibi alışılmadık özellikler de getirdi.
Dilin temel özellikleri:
- First-class functions: Fonksiyonlar değişkenlere atanabilir, başka fonksiyonlara parametre olarak verilebilir.
- Prototip tabanlı miras: Sınıf yerine prototip zinciri üzerinden nesne yapılandırması.
- Olay tabanlı (event-driven) yapı: Asenkron operasyonlar için doğal destek — callback, Promise, async/await.
- Otomatik bellek yönetimi: Çöp toplayıcı (garbage collector) sayesinde manuel bellek yönetimine gerek yok.
- Loose typing: Tip dönüşümleri otomatik yapılır — bu hem güç hem de hata kaynağıdır.
4. ECMAScript Standardı ve Modern JavaScript
1996 yılında Netscape, dili Ecma International'a teslim ederek standartlaştırma sürecini başlattı. 1997'de ECMA-262 standardı yayımlandı ve dilin resmi adı "ECMAScript" oldu. JavaScript, bu standardın en yaygın uygulamasıdır. Yıllar içinde yayımlanan başlıca sürümler:
- ES3 (1999): Düzenli ifadeler, try/catch, daha iyi string yönetimi.
- ES5 (2009): JSON desteği, strict mode, dizi metodları (map, filter, reduce).
- ES6 / ES2015: let/const, arrow fonksiyonlar, sınıflar, modüller, Promise — dilin modern dönemi.
- ES2017+: async/await, opsiyonel zincirleme, nullish coalescing gibi yıllık eklemeler.
5. JavaScript'in Yaygınlık Sırrı
JavaScript'in başarısı, bir tasarım üstünlüğünden değil, doğru zamanda doğru yerde olmasından geliyordu. Tarayıcıda çalışan tek dil olması, ona zorunlu bir tekel pozisyonu kazandırdı. Node.js'in 2009'da çıkışıyla aynı dil sunucuda da çalışmaya başladı ve "full-stack JavaScript" kavramı doğdu. Bugün npm üzerinde 2 milyondan fazla paket bulunuyor — bu, herhangi bir dil ekosistemindeki en büyük paket arşivi. Dilin sözdizimini, yerleşik API'leri ve tarayıcı davranışlarını derinlemesine inceleyen ayrıntılı referans dokümantasyonu üzerinden her sürümün getirdiği yeniliklere de ulaşmak mümkün.

6. Eich'in Mirası: Mükemmel Olmayan Ama Vazgeçilemeyen
Brendan Eich, yıllar sonra yaptığı söyleşilerde dile dair pişmanlıklarını da paylaştı: tip karşılaştırmalarındaki tutarsızlıklar (`==` vs `===`), `null` ve `undefined` ikiliği, `this` anahtar kelimesinin bağlam değiştirmesi gibi konular eleştiri konusu oldu. Ancak Eich'in savunması netti: "On gün vardı. On günde mükemmel dil tasarlanmaz, sadece çalışan bir dil tasarlanır." JavaScript'in tuhaflıkları, dilin oluşum koşullarının doğrudan yansımasıdır.
TypeScript, Babel, Webpack gibi araçlar yıllar içinde dilin eksiklerini tamamladı; ancak temel dil hâlâ Eich'in 10 günlük emeğinin DNA'sını taşıyor. JavaScript hakkında daha derin bilgi edinmek için JavaScript eğitim içeriklerini inceleyebilirsiniz.
1995'te bir tarayıcıya animasyon eklemek için yazılmış bu dil, bugün uçaktaki eğlence sistemlerinden uzay aracı kontrol panellerine kadar her yerde çalışıyor. Eich'in on günlük sprinti, modern web'in temelini attı — ve muhtemelen daha onlarca yıl bu temelin üzerine inşa etmeye devam edeceğiz.
Sıkça Sorulan Sorular
JavaScript'i kim ve ne zaman icat etti?
JavaScript, 1995 yılının Mayıs ayında Netscape Communications şirketinde çalışan Brendan Eich tarafından geliştirildi. Eich'e dili sadece 10 gün içinde tamamlama görevi verilmişti. Dilin ilk adı Mocha'ydı, ardından LiveScript oldu ve son olarak Aralık 1995'te JavaScript adını aldı.
JavaScript ile Java arasında ne fark var?
İsim benzerliği dışında neredeyse hiçbir teknik akrabalık yoktur. Java derlenen, statik tipli, sınıf tabanlı bir dildir; JavaScript ise yorumlanan, dinamik tipli ve prototip tabanlı bir dildir. JavaScript adı, 1995'te Sun Microsystems ile yapılan pazarlama anlaşmasıyla Java'nın popülerliğinden faydalanmak için seçildi.
JavaScript neden 10 günde yazıldı?
Netscape, Navigator 2.0 sürümünü piyasaya çıkarmadan önce tarayıcıya betik dili eklemek istiyordu ve zaman baskısı çok yüksekti. Brendan Eich'e bu görev verildiğinde teslim tarihi son derece sıkıştırılmıştı. Eich, Scheme ve Self dillerinden esinlenerek kısa sürede çalışan bir prototip ortaya çıkardı.
ECMAScript ile JavaScript aynı şey mi?
Tam olarak aynı değil ancak çok yakın kavramlardır. ECMAScript, Ecma International tarafından 1997'den beri yayımlanan dil standardının adıdır. JavaScript ise bu standardın en yaygın uygulamasıdır. Yani ECMAScript bir spesifikasyon, JavaScript ise bu spesifikasyonu uygulayan dildir.
JavaScript hangi alanlarda kullanılır?
Tarayıcıda web sayfası etkileşimleri (DOM manipülasyonu, animasyonlar), sunucu tarafında Node.js ile API ve web sunucuları, React Native ile mobil uygulama, Electron ile masaüstü uygulamaları (VS Code, Slack), hatta IoT ve gömülü sistemlerde donanım kontrolüne kadar çok geniş bir alanda kullanılır.
JavaScript öğrenmek ne kadar sürer?
Temel sözdizimi ve veri yapıları için birkaç hafta yeterlidir. Ancak DOM, asenkron programlama, Promise/async-await, kapanışlar (closures) ve prototip zinciri gibi konuların oturması aylar alır. Modern framework'leri (React, Vue) üretken biçimde kullanmak için genelde 6-12 aylık kararlı pratik gerekir.
Node.js JavaScript'ten farklı bir dil midir?
Hayır, Node.js bir dil değil bir çalışma ortamıdır (runtime). 2009'da Ryan Dahl tarafından geliştirilen Node.js, Google'ın V8 motorunu kullanarak JavaScript'in tarayıcı dışında, sunucuda çalışmasını sağlar. Dil aynıdır ancak ortam farklıdır: Node.js'te `window` yoktur, bunun yerine `fs`, `http` gibi sunucu API'leri bulunur.
Brendan Eich şu anda ne yapıyor?
Brendan Eich, Netscape ve sonrasında Mozilla'da uzun yıllar çalıştı; Mozilla'nın CEO'luğunu da kısa süre üstlendi. 2016'dan itibaren gizlilik odaklı Brave tarayıcısının kurucusu ve CEO'su olarak çalışmaktadır. Aynı zamanda ECMAScript standardının evrimini takip eden bir teknik otorite olarak yorumlar yapmaya devam ediyor.


