𝗧𝗵𝗲 𝗕𝗶𝗿𝘁𝗵 𝗮𝗻𝗱 𝗗𝗲𝗮𝘁𝗵 𝗼𝗳 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
JavaScript tarayıcıda düşük yetkilerle çalışır. Yine de sunucuları, derleme araçlarını (build tools) ve boru hatlarını (pipelines) çalıştırır. Bu bir plan değildi. 1995'teki bir kararın üzerine eklenen bir dizi yamadan ibaretti.
Bunun neden gerçekleştiğini anlamak, bugün teknoloji yığınınızı (stack) nasıl tasarladığınızı değiştirir.
Gary Bernhardt'ın 2014 yılındaki konuşması nostaljiyle ilgili değildir. Bu, mimari sürtünmenin (architectural friction) bir teşhisidir. İronik bir döngüye dikkat çekmiştir: JavaScript, tarayıcıda tekel olduğu için hayatta kalan bir oyuncak dildi. Bu tekel, onu dünyadaki en çok kullanılan dil haline getirdi.
Gerilim basittir. Tarayıcı, kodu güvenli ve hızlı bir şekilde çalıştırmalıdır. Bu iki hedef birbiriyle çelişir.
2014 yılında, WebAssembly'nin JavaScript'in yerini alacağı üzerine bahis oynanıyordu. Bu tam olarak gerçekleşmedi. WebAssembly; Figma veya Google Earth gibi şeyler için kararlı ve kullanışlıdır. Ancak bir uygulama dili olarak JavaScript'in yerini almadı.
Bunun yerine JavaScript mutasyona uğradı. TypeScript, bundler'lar ve Bun gibi yeni çalışma ortamları (runtimes), Bernhardt'ın tespit ettiği sürtünmeleri gidermek için varlar.
Bu konuşmayı JavaScript öğrenmekten kaçınmak için kullanmayın. Bir performans sorunu olmadan WebAssembly'ye geçişi haklı çıkarmak için kullanmayın.
Onu teknoloji yığınınız için bir kontrol listesi olarak kullanın:
- Bunu en iyi araç olduğu için mi kullanıyorum?
- Yoksa burada çalışan tek şey olduğu için mi?
- Araçların getirdiği ek yük (overhead) sürtünmeyi çözüyor mu yoksa sadece başka bir yere mi taşıyor?
- Bugün sıfırdan başlasaydım, bunu seçer miydim?
- Performans tavanı benim kullanım durumum için kabul edilebilir mi?
TypeScript, derleme zamanında (compile time) tipler konusunda yardımcı olur. Tipleriniz ile ağ üzerinden gelen veriler arasındaki boşluğu gidermez. Hala çalışma zamanı (runtime) doğrulamasına ihtiyacınız vardır.
En önemli ders şudur: Teknolojinizin hak edilmiş bir başarıyla mı yoksa bir tekel sayesinde mi var olduğunu bilin.
Çalışma ortamınızı (runtime) 2014 yılındaki bir tahmine dayanarak değiştirmeyin. Bir darboğaz (bottleneck) gösteren ölçümlenmiş verileriniz olduğunda değiştirin.
Kaynak: https://dev.to/jtorchia/the-birth-and-death-of-javascript-2014-what-still-holds-and-what-doesnt-2hae