10 puan yazan GN⁺ 2025-06-30 | 3 yorum | WhatsApp'ta paylaş
  • Son TC39 108. toplantısında, JavaScript’in geleceğini şekillendirecek 9 öneri standardizasyonun farklı aşamalarında ilerleme kaydetti
  • Stage 4 (nihai onay) aşamasında, using, Array.fromAsync, Error.isError gibi geliştirici üretkenliğini ve güvenliği artıran özellikler yer alıyor
  • Stage 3~1 aşamalarında ise immutable ArrayBuffer, seed’li random, clamp, NumberFormat iyileştirmeleri, Random fonksiyonları gibi çeşitli kullanışlı özellik önerileri tartışılıyor
  • Deno, en yeni standartların benimsenmesi ve deneysel çalışmalar konusunda aktif; bazı özellikler şimdiden Deno ve modern tarayıcılarda kullanılabiliyor
  • Önümüzdeki dönemde standardizasyon tartışmalarının sürmesi ve JavaScript ekosisteminin daha güvenli, daha sade bir yapıya evrilmesi bekleniyor

TC39’ta Son Standardizasyon Gelişmeleri ve JavaScript’in Başlıca Yeni Özellikleri

Stage 4: Resmî Olarak Benimsenmesi Beklenen Özellikler

Açık kaynak yönetimi(using)

  • using bildirimleri, dosya, ağ soketi gibi kaynak nesnelerinin ömürleri sona erdiğinde temizleme işlemlerinin otomatik olarak yapılmasını garanti eder
  • C# ve Python gibi dillerden ilham alan bu yapıda, nesne [Symbol.dispose]() veya [Symbol.asyncDispose]() metodunu uygular ve blok sona erdiğinde çağrılır
  • İstisna oluşsa bile otomatik temizleme gerçekleşir; böylece dosya tanıtıcısı gibi kaynak sızıntısı riski azalır
  • Chrome 134, Firefox 134, Deno v2.3 gibi ortamlarda zaten destekleniyor; Deno’da dosya ve soket gibi gerçek kullanım senaryolarında hemen değerlendirilebilir

Array.fromAsync

  • Asenkron iterable yapıları diziye dönüştüren standart bir metottur ve Promise döndürür
  • Async generator gibi yapılardan değerleri sırayla toplar ve sonunda dizi sonucunu Promise olarak verir
  • Mevcut senkron Array.from ile kullanım biçimi benzerdir; mapping fonksiyonu ve thisArg desteği sunar
  • Tüm büyük tarayıcılarda, Node v22’de ve Deno v1.38+ sürümlerinde destekleniyor

Error.isError

  • Herhangi bir değerin gerçek bir Error nesnesi olup olmadığını kolayca belirlemeyi sağlayan yerleşik bir fonksiyondur
  • Cross-realm, alt sınıf hata nesneleri gibi karmaşık durumlarda da güvenilir biçimde çalışır
  • Polyfill ve kütüphane geliştirme süreçlerinde güvenilirliği artırır

Stage 3: Immutable ArrayBuffer

Immutable ArrayBuffer

  • ArrayBuffer için immutable yapı desteği sağlayacak transferToImmutable(), sliceToImmutable() metotlarının eklenmesi planlanıyor
  • Immutable buffer, oluşturulduktan sonra değiştirilemez ve detached hâle getirilemez; thread ve worker’lar arasında güvenli paylaşım ile performans artışına katkı sağlar
  • Deno gibi ortamlarda binary veri işlenirken gereksiz kopyalamaya ihtiyaç duymadan verimli kullanım sağlayabilir

Stage 2: Yeni Özellik Önerileri

Random.Seeded

  • Seed tabanlı PRNG (Random.Seeded(seed)) ile tekrar eden çalıştırmalar arasında aynı rastgele sayı dizisinin üretilmesi mümkün olur
  • Oyunlar ve simülasyonlar gibi yeniden üretilebilirliğin önemli olduğu alanlarda faydalıdır
  • Mevcut Math.random()dan farklı olarak seed belirleme ve durum kopyalama gibi gelişmiş yetenekler sunar

Number.prototype.clamp

  • Sayısal aralık sınırlama metodu olarak, değeri belirtilen minimum ve maksimum aralığına otomatik olarak uyarlar
  • Mevcut Math.min(Math.max(x, min), max) kalıbının yerine daha kısa ve daha açık bir alternatif sunar

Stage 1: İlk Tartışma Aşamasındaki Öneriler

Keep Trailing Zeros

  • Intl.NumberFormat için yeni bir seçenek olarak, ondalık basamaklardan sonraki 0’ların korunması/kaldırılması üzerinde ayrıntılı kontrol sağlar
  • Para tutarları ve sabit noktalı gösterimler gibi UI senaryolarında ifade gücünü artırır

Comparisons

  • Node.js’in util.inspect özelliğine benzer şekilde, değerlerin insan dostu gösterimi ve diff çıktısının standardize edilmesini hedefler
  • Test framework’leri ve konsol çıktılarında tutarlılık sağlar

Random Functions

  • Yeni bir Random namespace’i sunarak rastgele sayı, sampling, shuffle gibi güvenli ve sade random işlevlerini bir araya getirmeyi amaçlar
  • Off-by-one hatalarını önlemeye yardımcı olur ve çeşitli toplama/sampling kalıplarını sezgisel biçimde destekler

Deno ve JavaScript Ekosisteminin Geleceği

  • Deno, standardizasyon tartışmalarına aktif olarak katılıyor ve en yeni özellikleri pratik kullanıma hızla yansıtıyor
  • Örneğin async context propagation, yerleşik OpenTelemetry ve yeni kaynak yönetimi kalıpları
  • Eylül ayından sonraki ek TC39 toplantılarında standardizasyon tartışmalarının sürmesi planlanıyor
  • JavaScript geliştiricileri gelecekte daha güçlü, daha güvenli ve daha kullanışlı bir dil ortamı deneyimleyebilecek

3 yorum

 
carnoxen 2025-07-03

await operations proposal

Bu ne zaman...

 
dohyun682 2025-06-30

Desen eşleme ne zaman eklenecek acaba

 
click 2025-06-30

stage 1'de signals var ama resmi olarak kullanıma sunulmasına daha epey var gibi görünüyor.