14 puan yazan GN⁺ 2026-01-19 | 3 yorum | WhatsApp'ta paylaş
  • Yaklaşık 10 yıl sonra gelen büyük sürüm güncellemesi ile jQuery 4.0.0 resmen yayımlandı
  • IE 10 ve altı ile eski tarayıcı desteği sona erdi; kod hafifletildi, modern standartlara uyum güçlendirildi ve çoğu kullanıcı kod değişikliği yapmadan yükseltme yapabilecek
  • ES modül tabanlı yapıya geçiş ile Rollup derleme sistemi benimsendi ve modern geliştirme ortamlarıyla uyumluluk sağlandı
  • Trusted Types ve CSP desteği eklenerek güvenlik politikalarıyla çakışma en aza indirildi
  • Kullanımdan kaldırılmış API'lerin çıkarılması ve slim derlemenin küçültülmesi ile performans ve bakım kolaylığı artırıldı

jQuery 4.0.0'a genel bakış

  • jQuery 4.0.0, yaklaşık 10 yıl sonra gelen büyük ölçekli bir ana sürüm olarak, uzun bir geliştirme süreci ve birçok ön sürümün ardından tamamlandı
    • Çoğu kullanıcı kod değişikliği yapmadan yükseltebilir
    • Önceki sürümlerde biriken eski kodlar ve özel parametreler kaldırıldı
  • Yükseltme rehberi ve jQuery Migrate eklentisi birlikte sunularak eski sürümlerden geçiş destekleniyor
  • Dağıtım resmi CDN ve npm üzerinden yapılabiliyor; diğer CDN'ler ise kademeli olarak güncellenecek

Tarayıcı desteğindeki değişiklikler

  • IE 10 ve altı desteği kaldırıldı; IE 11 desteği ise jQuery 5.0'da aşamalı olarak sonlandırılacak
  • Edge Legacy, eski iOS sürümleri (son 3 sürümden daha eski), eski Firefox sürümleri (son 2 sürümden daha eski) ve Android Browser desteği sonlandırıldı
  • Eski tarayıcıları desteklemek gerekiyorsa jQuery 3.x sürümünde kalınması öneriliyor

Trusted Types ve CSP uyumluluğu

  • TrustedHTML nesnelerini güvenli şekilde işlemek için Trusted Types desteği eklendi
  • Asenkron script isteklerinin çoğu `` etiketi tabanlı yapıya dönüştürüldü, böylece CSP hataları önleniyor
    • "headers" seçeneği kullanıldığında hâlâ XHR kullanılabilir, ancak scriptAttrs kullanımı öneriliyor

ES modüllerine geçiş

  • jQuery kaynak kodu AMD'den ES modüllerine tamamen taşındı
    • Mevcut RequireJS yerine derleme aracı olarak Rollup benimsendi
    • ES modül tabanlı testler ayrıca yürütülüyor
  • `` aracılığıyla modern tarayıcılar ve derleme araçlarıyla uyumluluk sağlandı

Deprecated API'lerin kaldırılması

  • Uzun süredir önerilmeyen durumdaki API'ler tamamen kaldırıldı
    • Kaldırılan fonksiyonlar: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps, jQuery.fx.interval
    • Alternatif olarak Array.isArray(), JSON.parse(), String.prototype.trim(), Date.now() gibi yerel metotların kullanılması öneriliyor
  • IE ile ilgili kodların çıkarılmasıyla birlikte gzip bazında yaklaşık 3KB küçülme sağlandı

Dahili yöntemlerin kaldırılması

  • jQuery prototipinde yalnızca dahili kullanım için bulunan push, sort, splice metotları kaldırıldı
    • $elems.push(elem) yerine [].push.call($elems, elem) kullanılabilir

Odak olaylarının sıralaması değişti

  • W3C spesifikasyonuna uygun focus/blur olay sırası ile standartlaştırıldı
    • Yeni sıra: blur → focusout → focus → focusin
    • Önceki jQuery sırasından farklı olduğu için uyumluluk açısından dikkat gerekiyor
    • IE dışında tüm tarayıcılar aynı sırayla çalışıyor

Slim derlemedeki iyileştirmeler

  • Deferreds ve Callbacks'in kaldırılmasıyla dosya boyutu yaklaşık 19.5KB'ye (gzip) indirildi
    • Çoğu tarayıcı yerel Promise desteği sunduğundan bunların yerine kullanılabilir
    • IE11 desteği gerekiyorsa ana derlemeyi ya da Promise polyfill kullanımını tercih etmek öneriliyor
  • Slim derleme, Ajax ve animasyonla ilgili modülleri içermediği için yaklaşık 8KB daha küçük

İndirme ve dağıtım

Katkıda bulunanlar ve 20. yıl kutlaması

  • Çok sayıda açık kaynak katkıcısı yamalar, hata raporları ve testlere katkı sundu
  • jQuery'nin 20. yılı kapsamında ekip Dallas'ta yeniden bir araya geldi; kurucu John Resig de Zoom üzerinden katıldı

Başlıca kod değişikliklerinin özeti (Changelog)

  • Ajax: ikili veri işleme geliştirildi, CSP hataları önlendi, JSONP hata işleme güçlendirildi
  • CSS: `` öğesi boyut hesaplaması düzeltildi, CSS değişkenlerinde boşluk işleme iyileştirildi, opacity hook'u kaldırıldı
  • Core: AMD → ES modülleri geçişi, DOMParser kullanımı, eski tarayıcı uyumluluk kodlarının çıkarılması
  • Event: focus/blur olaylarının yerel işlenmesi, event.which shim'inin kaldırılması
  • Selector: Sizzle entegrasyonu, :has ile :even/:odd iyileştirmeleri, uniqueSort zincirleme desteği eklendi
  • Docs: HTTPS bağlantıları güncellendi, README ve CONTRIBUTING belgeleri düzenlendi
  • Release: derleme ve dağıtım süreci otomatikleştirildi, release-it tabanına taşındı

Özet

  • jQuery 4.0.0, modern web standartları ve güvenlik politikalarına uygun yapısal bir yenileme sürümü niteliğinde
  • Eski kodların kaldırılması, ES modülerleşme, güvenlik güçlendirmeleri ve hafifleme sayesinde uzun vadeli bakım temeli kuvvetlendirildi
  • jQuery ekosisteminin 20. yılını simgeleyen anlamlı bir sürüm olarak değerlendiriliyor

3 yorum

 
tsboard 2026-01-21

Duygusal bir 20. yıl dönümü. Artık kullanacak pek iş kalmadıysa da, umarım sahada hâlâ faydalı bir araç olarak sevilmeye devam eder.

 
shakespeares 2026-01-19

İnanılmaz dayanıklıymış.. haha

 
GN⁺ 2026-01-19
Hacker News yorumları
  • İlgili bir yazı olarak, eski kod tabanlarında modern framework’ler kullanılamadığında jQuery’yi reaktif şekilde kullanma yöntemini iyi anlatan bir yazı var
    Reactive jQuery for Spaghetti-fied Legacy Codebases

    • Eskiden bu amaç için BackboneJS çok kullanılırdı. Hâlâ bakım almaya devam ediyor
      jQuery’yi eski sistem nedenleriyle kullanmak gerekiyorsa, Backbone modern framework’lere geçmeden önce iyi bir ara adım olabilir
      BackboneJS resmi sitesi, GitHub tag listesi
    • Bu yazıyı görünce eski jQuery spagetti kodu günleri aklıma geldi
      Aslında aşırı tasarlanmış React kodunun, iyi düzenlenmiş jQuery kodundan daha kötü olduğu zamanlar da olmuştu
      React’in kalite çıtasını yükselttiği doğru ama bazen bildiğin araçları yerinde kullanmak daha verimli oluyor
    • Ben de bu yaklaşımı kullandım ve 2010’lar tarzı jQuery keşmekeşinden çok daha iyiydi
      Özellikle Userscript gibi problem alanının küçük olduğu ve build adımının uğraştırdığı durumlarda çok uygun
      Aslında jQuery olmadan da sadece querySelector, addEventListener, innerHTML ile rahatça yapılabilir
    • Son yaptığım büyük jQuery uygulaması da bu tür reaktif pattern kullanıyordu
      Joomla CMS içine özel bir arama frontend’ini zorla gömmek zorunda kalmıştım ve oldukça iyi çalışmıştı
    • Gerçekten çok iyi bir pattern. Buna bir de signals eklenirse güncelleme fonksiyonu otomatik çağrılır
      Reactive Mastro'da yaptığımız şey de tam olarak bu
  • jQuery hâlâ en sevdiğim kütüphanelerden biri
    Kariyerimi şekillendiren araç olduğu için ona karşı hep ayrı bir sevgim var

    • Bugünün gençleri sadece yeni framework’lerin peşinden gidiyor ama jQuery ve .NET Framework sayesinde benim hep işim oldu
    • 15 yıldır jQuery kullanıyorum. Hâlâ benim varsayılan tercihim
    • Keşke biri jQuery’ye Virtual DOM eklese
      jQuery + jQuery UI + eklentiler + AI kombinasyonunun müthiş bir potansiyeli olabilir
  • HTMX konuşulduğunda aklıma hep “bu zaten jQuery ile üç satırda yapılmaz mı?” düşüncesi geliyor
    Sonuçta jQuery hep sorun çözdü ve önemli olan da bu

    • Evet. HTMX, aslında jQuery’nin .load() metodundan ilham alan intercooler.js’ten evrildi
      jQuery.load() dokümantasyonu
      Performans çalışması yaparken keşfetmiştim; jQuery’ye gerçekten büyük saygı duyuyorum
    • jQuery’nin sorunu, imperative kod olması; birden fazla durumu yönetmeye başlayınca işler karmaşıklaşıyor
    • Bugünlerde native JS kullanıyorum ama $() seçici arayüzünün zarafeti hâlâ eşsizdi
      Performans farkı da önceden hesaplama ile telafi edilebilir gibi görünüyor
    • Django kullanırken çoğu sorunu HTMX ve vanilla JS kombinasyonuyla çözüyorum
      Basit kalırken yine de SPA benzeri bir his verebiliyor
  • Good ol’ jQuery, gerçekten minnet duyulası bir şeydi

  • jQuery’nin hâlâ korunup güncelleniyor olduğunu görmek sevindirici
    Ama bu aynı zamanda React’in de 2060’a kadar yaşayabileceği anlamına geliyor, bu da biraz hüzünlü

    • React sayesinde uygulama geliştirme çok daha iyi hale geldi
      Eski callback cehennemi günlerini düşününce bugünkü hâl neredeyse bir rüya gibi
    • 2060 civarında React Native belki de v0.93’e gelmiş olur
    • Aslında fiilen iki farklı React zaten var. 2060’ta sayı beşe çıkar gibi duruyor
  • 2000’ler ve 2010’larda SPA framework’lerinin yaygın olmadığı dönemde ben de web geliştirmeyi jQuery ile öğrendim
    O zaman yaptığım şeylerin önemli bir kısmı muhtemelen hâlâ çalışıyordur
    jQuery ekibine teşekkürlerimi iletiyorum

  • jQuery 4.0 sürümüne katkı veren herkesi tebrik ederim
    Daha yapısal bir yaklaşım isteyenler için JsViews adında reaktif bir şablon sistemi var
    Eski ve stabil ama modern framework’ler kadar ilgi görmedi

    • JsViews’i ilk kez duyuyorum ama ilginç görünüyor
      Ben şahsen cheerio ve alpine.js gibi modern jQuery tarzlarını seviyorum
      cheerio.js.org, alpinejs.dev
    • Benim de şu an jQuery kullanmam gerekmiyor ama JsViews’in kaynak koduna bakmaya değer
      Yalnız site tasarımı fazla eski göründüğü için benimsenmesi düşük kalıyor gibi
      Yine de hızlı yükleniyor ve hafifliği etkileyici
      jsrender.min.js yalnızca 12.82kB
  • İnanması zor ama jQuery 4.0 hâlâ IE11 desteği sunuyor
    Bunun jQuery 5.0’da nihayet kaldırılması planlanıyor

    • 4.0 çıkışını geciktirmemek için IE11 desteğini bırakmış gibiler
      İlgili PR, issue
      3.0’ın 10 yıl önce çıktığını düşününce oldukça şaşırtıcı
    • Bunun nedeni geriye dönük uyumluluk. Hâlâ IE11 kullanmak zorunda olan ortamlar var
      Bu kullanıcıları ve ürünleri desteklemeleri takdire değer
    • Microsoft, Windows 10 LTSC ve Windows 11’deki Edge IE modu için 2032’ye kadar IE11 desteği vermeyi planlıyor
    • Dünyadaki herkesin en yeni donanım ve yazılımı kullanma şansı yok
      Hâlâ eski sistemlerle çalışan okul bilgisayar laboratuvarları çok sayıda mevcut
  • jQuery’nin upgrade tool için harcanan emek gerçekten hayranlık uyandırıcı

  • jQuery’nin zincirleme söz dizimini hâlâ seviyorum
    15 yıl önce Fransızca bir jQuery eğitimi yazmıştım ve çok görüntülenmişti
    Umarım jQuery’nin yayılmasına ben de az da olsa katkıda bulunmuşumdur