Artık neden JavaScript'i sevmiyorum

·

4 min read

Çoğunuz başlığı okuduğunuzda aslında nelerden bahsedeceğimi tahmin etmişsinizdir. Bu yazı JavaScript olan sevgimin nasıl başladığının ve sonrasında nasıl yavaş yavaş sevmeme noktasına evrildiğinin hikayesi. Dilerseniz bu hikayeyi okumak yerine konunun özetine son paragraflarda ulaşabilirsiniz.

90'ların ortasına bilgisayarlarla ilk tanışmam ve klavyede dokunduğum harfin ekranda belirlemesiyle başlayan bilgisayar teknolojilerine olan hayranlığım hala devam ediyor. Ancak 90'ların sonuna doğru internete erişimin kolaylaşması ile birlikte yeni bir dünya gözlerimizin önünde şekillenmeye başladı. Web sayfalarını gezerken interaktivitenin JavaScript adlı bir şeyle yapıldığını o dönem keşfettim. İşin güzel tarafı bu kodları alıp üstünde ufak değişiklikler yaparak kaydettiğimde bilgisayarımda ekstra bir şey yapmama gerek kalmadan çalıştırabiliyordum. Bu sayede aslında programlamanın nasıl bir şey olduğunu görmeye başlamıştım. O dönemler programlama denilince akla Visual Basic geliyordu ve arkadaşlarımla ufak denemelerde yaptık ancak notepad'de yazdığın ve tarayıcıda çalışan kod kadar kolay değildi hiçbiri. Böylece ingilizce becerisine sahip olmadan ufak kod snippetları biriktirerek JavaScript serüvenim başlamış oldu.

Biraz ileri sarıp 2000'li yıllara geldiğimizde tarayıcıda çalışan diğer bir dili öğrenmeye başladım. Bu dil CSS'di. Görsel sanatlara olan merakım ve programlamaya olan ilgimin buluşması gibiydi CSS ve JavaScript. Bu dönemde ilk freelance işlerimizi bir arkadaşımla almaya başladık. Dizayn ve frontend işlerini benim yaptığım arkadaşımınsa Mambo (ilerde Joomla olan) ile backendiğini hallettiği ufak projelerdi bunlar. O zamanlar JavaScript frameworkleri yoktu ve nerdeyse her şeyi kendiniz yazıyordunuz veya hazır snippetlar kullanıyorduk. CSS yeni yeni popülerleşmeye başlıyodu ve web yavaş yavaş değişmeye başlamıştı. Aslında bu dönem bir yandan Javascript ve CSS'in bir dil olarak bile kabul edilmediği ve bizim gerçek bir geliştirici kabul edilmediğimiz bir dönemdi. Gerçek bir geliştirici o dönem için backend işleri yapan insanlar olarak kabul ediliyordu.

2000'lerin ortalarına doğru geldiğimizde yavaş yavaş ilk JavaScript kütüphanelerinin ortaya çıkmaya başladığı dönemdi. O zamanlar Moo.fx adlı bir efekt kütüphanesi bulmuştum ve hayran kalmıştım. Aynı ekip Moo.ajax kütüphanesinden sonra Mootools adlı bir kütüphane hazırlamıştı ve uzun süre bu kütüphaneyi kullandım. Bu yüzden aslında jQuery furyasına biraz geç katılmıştım çünkü Mootools jQuery ayarında ve ihtiyaçlarımı karşılayan bir kütüphaneydi. Kütüphane veya değil o dönem kodlarımızı eskisi gibi yazıp olduğu gibi deploy ediyorduk. Oldukça basit bir süreçti ve JavaScript aslında temel olarak zaten buydu. Ancak artık yeni bir dönem ufukta görünüyordu.

2010'lu yılların ortalarında yeni kütüphanaler ortaya çıkmaya başladı. React'la tanışmam bu süreçte olmuştu ama jQuery hala çok güçlüydü. Ama bu süreçte Vue.js adlı minik bir kütüphane keşfettim. Aslında React'ın basitleştirilmiş bir hali gibiydi. JavaScript'e başladığım ilk günlerdeki heyecanı bana histtermeyi başarmıştı. Ama hala geliştirmelerimizi hibrit olarak yapıyorduk, yani Vue.js'ı aslında jQuery gibi sayfanın belli bölümlerinde kullanıyorduk ve bazen server-side teknolojilerle birlikte kullanarak oldukça yaratıcı şeyler ortaya koymayı başarabiliyorduk. Ama JavaScript ekosistemi evrilmeye devam ediyordu ve benim için çok heyecan vericiydi. Yeni şeyler öğrenmek için zamanım ve enerjim vardı ve React, Angular ve birçok irili ufaklı kütüphaneyi denedim. Ama Vue.js ile devam etmeyi tercih ettim. SPA'lerin hayatımızıa girmeye başlamasıyla yeni fırsatlar ve yeni problemler birlikte geldi. Geliştirici olarak aslında problem çözmek asli görevlerimizden biri olduğu için genelde severek yaptığım şeyler arasındaydı problem çözmek ve yeni şeyler öğrenme fırsatı veriyordu. Bu noktada bir şeylerin değişmeye başladığını hissediyordum ve sanırım değişen bendim.

Yeniden Internet explorer 6 döneminde hissetmeye başladığım bir dönem başladı. Yeni kütüphaneler ve frameworklerle sürekli yine bu yeni teknolojilerin sonucu olan problemleri çözmeye çalışıyorduk. Bir süre sonra çözümler geçersiz oluyordu veya doğruluğunu kaybedebiliyordu çünkü ekosistem hızlı bir değişim döngüsündeydi. Bu bir yandan güzel bir şey olsada bir yandan da kötü bir deneyimdi. Belki artık o enerjiye sahip değilim veya sıkıldım ama kullandığım dil ilk başta sevdiğim/aşık olduğum dil gibi gelmiyor artık. Evet hala notepad'de kodunuzu yazıp tarayıcıda çalıştırabilirsiniz ancak ekosistem artık buna uygun değil. Artık bundlerlar, çoğu zaman kullanmasanız bile tonla kütüpaneler olmadan kod yazamıyorsunuz. Çoğu yeni arkadaşın çok iyi JavaScript bilgisine sahip olmalarına rağmen ufak UI problemlerini kütüphaneler olmadan çözemedikleri bir dönemdeyiz. Bunu küçümsemek adına söylediğim bir cümle değil, çoğu benden oldukça yetenekli bu arkadaşlar JavaScript'in bu tarafında hayatlarında çalışmadılar.

Eski server-side render edilen sayfalarla dakikalar içinde çözülebilecek problemlerin state'ler, proplar ve benzeri şeyler ile takımların günlerini aldığını görüyorum. Kötü tasarlanmış frontend sayfalarının onlarca yüzlerce sorguya neden olduğu ve server-side bir render edilen bir sayfayla bu rakamların çok ciddi anlamda düşürülebileceğine şahit oluyorum. Bunun SPA ve SSR karşılaştırması haline gelmesini istemiyorum. SPA'leri hala çok seviyor ve öneriyorum ancak JavaScript ekosistemi çok dağınık. Her yeni kütüphane, framework veya araç kendi problemleri ile birlikte geliyor. Buna rağmen JavaScript için güzel bir gelecek görüyorum ancak JavaScript ilk başta sevdiğim o dil değil artık.