Bilgilendirici bir metin yazmak istedim, keza cehalet üst safhada bu konuda.
1. jQuery ile vanilla JS arasındaki performans farkı aşırı büyük bir DOM üzerinde çalışmadığınız ya da onbinlerce element'i loop'lamadığınız sürece hissedilmez.
2. Vanilla JS, jQuery'den daha hızlıdır.
3. jQuery'nin rakibi Vue, next veya angular değil; Alpine.JS gibi amacı basit dom manipülasyonu kütüphanelerdir.
4. Vanilla JS bilmeyen birisi JS bilmiyordur. jQuery bilen birisi jQuery, yani basit DOM manipülasyonu biliyordur.
5. Vanilla JS ile querySelector atıp, element gizleyip, göstermek sizleri javascript biliyor yapmaz.
6. jQuery'yi AJAX için kullanmak çok saçmadır. Vanilla JS'de bu işlemler için XHR ve fetch yöntemleri var.
7. Vanilla JS bir yeni dil değil ya da bir kütüphane değildir. PLAIN javascript yani ek bir bağımlılığı olmadan, bir kütüphaneye gerek duymadan; browser üzerinde native şekilde kendi başına çalışabilen kod demektir. Hep vardı.
Hiçbir dildeki, hiçbir kütüphane; sizi o dilin plain hali ile yazılmış amaca yönelik bir koddan daha hızlı işlem yaptıramaz. Framework'ler tamamı sadece ama sadece yazılım geliştirme sürecini hızlandırmak, daha çalışılabilir bir alan sağlamak için doğmuştur.
Javascript'deki framework çokluğunun, PHP gibi bir dilin framework sayısından çok çok daha fazla olmasının sebebi arz-taleptir. Çünkü, JS asenkron bir dildir. Spagetti hale gelmeye, karışmaya en müsait dildir. Vanilla JS ile büyük bir proje yazılıyorsa, çok iyi planlanmalıdır. Eğer ki şahıs bu planlama ile zaman geçirmek istemiyorsa; işte o zaman framework'ler doğar. Ya da kişi kendi framework'unu yazmış olur.
Peki, sene 2022; jQuery öğrenmeli miyim?
Hayır. Gerek yok. Artık tüm kütüphaneler bu bağımlılıktan kurtulmak için yeniden yazılıyor. ES6 üzerinde kurulu Zepto.JS bile bu süreci hızlandırmak için yaratıldı.
Peki, sene 2022, vanilla JS öğrenmeli miyim?
Evet. Aksi halde hiçbir şekilde debug yapacak kapasitede olamazsın.
Peki, sene 2022, neden hala jQuery kullanıyorlar?
Herkesi kendi keyfi. Sen de istediğini kullanabilirsin.
Sen ne kullanıyorsun?
Vanilla JS. Framework kullanmayı tercih etmiyorum çünkü ben yazmadım ve JS gibi browser temelli bir dilde; framework'lerdeki bir hatadan dolayı debug yaparken midem kalkıyor.