deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

TypeScript 7.0, Go ile yeniden yazılmış bir derleyiciyle geliyor: derlemeler 8-12 kat daha hızlı

TypeScript 7.0, JavaScript tabanlı derleyicisini yerli bir Go uygulamasıyla değiştiriyor ve tam tür denetimlerini dakikalardan saniyelere indiriyor.

TypeScript 7.0, Go ile yeniden yazılmış bir derleyiciyle geliyor: derlemeler 8-12 kat daha hızlı

Microsoft, TypeScript 7.0'ı 8 Temmuz 2026'da yayınladı ve bununla birlikte dilin doğuşundan beri ona güç veren derleyiciyi emekliye ayırdı. dev.to'daki bir yazıya göre yeni derleyici Go ile yazıldı, Corsa kod adıyla geliştirildi ve hiçbir yeni sözdizimi, operatör veya dil özelliği getirmiyor. Sürümün tamamı mimarisel: tek bir iş parçacığında çalışan yorumlanmış JavaScript yerine, derlenmiş yerli kod ve gerçek çoklu iş parçacığı kullanılıyor.

Eski derleyici neden bir tavana çarptı

Orijinal derleyici, dil servisi ve tür denetleyicisi TypeScript ile yazılmıştı ve Node.js içinde tek iş parçacıklı olarak çalışıyordu. dev.to'nun açıkladığı gibi, tür denetimi CPU bağlantılıdır ve bir projedeki dosyalar ile bölümler büyük ölçüde bağımsız olarak denetlenebildiğinden, prensipte yüksek düzeyde paralelleştirilebilir. Tek iş parçacıklı bir runtime bunu kullanamıyordu; bu da CI makinelerinde ve geliştirici bilgisayarlarında denetimler sırasında fazla çekirdekleri boş bırakıyordu. Ayrıca JIT ısınma maliyetleri, editör araçları ve CLI kullanımında tipik olan sürekli taze başlatmalarda ceza oluşturuyordu.

Yeniden tasarım değil, sadık bir taşıma

Microsoft, Go'ya karar vermeden önce C#, Rust ve Go'yı değerlendirdi. dev.to'daki anlatıma göre baş mimar Anders Hejlsberg bu seçimi, TypeScript'in hedeflediği her platformda tam yerli kod derlemeleri sunmaya devam eden ve güçlü yerleşik eşzamanlılığa sahip en düşük seviyeli dili seçmek olarak tanımladı. Go'nun goroutine'leri ve kanalları, birçok dosyayı paralel olarak denetleme ve sonuçları birleştirme problemine tam oturuyor; Rust'a yapılacak bir taşıma, devasa bir mevcut kod tabanını göç ettiren bir ekipe hem daha dik bir öğrenme eğrisi hem de borrow-checker yükü bindirirdi.

Özellikle ekip sıfırdan başlamadı. Mevcut derleyici olabildiğince sadık bir şekilde taşındı; bu özellikle eski ve yeni uygulamalar arasında sonuçların tutarlı kalmasını sağlamak ve ince tür denetimi farklarını önlemek için yapıldı.

Performans rakamları

dev.to'nun aktardığına göre Microsoft'un öne çıkardığı rakam, büyük gerçek dünya projelerinde tam derlemelerde 8 ila 12 kat hızlanma; bunu yerli yürütme, paylaşımlı bellekli çoklu iş parçacığı ve hedefli optimizasyonlar sağlıyor. Bildirilen somut örnekler şunlar:

  • VS Code kod tabanının tam bir tür denetimi kabaca 125 saniyeden yaklaşık 10,6 saniyeye düştü.
  • VS Code'un dil servisi kabaca 9,6 saniyeden yaklaşık 1,2 saniyede kullanılabilir hale geldi.
  • En yüksek bellek kullanımı, proje boyutuna bağlı olarak %6 ila %26 düştü.
  • Microsoft içeride, TypeScript 6.0 ile karşılaştırıldığında başarısız olan dil sunucusu komutlarında 20 kat azalma bildirdi; bu, büyük projelerde zaman aşımları, takılmalar ve bayat sonuçlar için bir göstergedir.
  • Slack'te, daha önce tam bir tür denetimini yerel olarak çalıştıramayıp CI'ya devreden mühendisler artık bunu bir dizüstü bilgisayarda çalıştırabiliyor.

Paralellik bayrakları ve ayrı bir binary

TypeScript 7.0, onu denetlemek için ayarlar sunan gerçek paylaşımlı bellekli çoklu iş parçacığını getiriyor. checkers bayrağı tür denetimi worker sayısını belirler, builders bayrağı monorepo'larda birden fazla proje-referans builder'ını eşzamanlı çalıştırır ve single-threaded modu, hata ayıklama veya davranış karşılaştırmaları için paralelliği kapatır. dev.to, Microsoft'un uyarısını aktarıyor: checker ve builder ayarlarının birleşimi etkin worker'ları toplamak yerine çarpıyor, dolayısıyla doğru değerler makineye ve projenin yapısına bağlıdır.

Go derleyicisi ayrı bir binary olarak yayımlanıyor; önizleme döneminde @typescript/native-preview olarak dağıtıldı ve sonra ana typescript paketine dahil edildi. Önerilen göç kademelidir, ani bir geçiş değil: yerli binary'yi mevcut tsc ile yan yana çalıştırın, birkaç hafta boyunca tanılamalarını CI'da karşılaştırın ve çıktılar örtüştiğinde geçişi tamamlayın.

Editör araçları LSP'ye geçiyor

Dil sunucusu da yeniden yazıldı ve VS Code'a bağlı olmayan bir Language Server Protocol temeline dayanıyor; yani LSP uyumlu herhangi bir editör onu benimseyebilir. VS Code kullanıcıları TypeScript Native Preview uzantısıyla katılmayı seçebilirken, Visual Studio çalışma alanı yapılandırmasına göre TypeScript 7'yi otomatik olarak etkinleştiriyor.

Yükseltmeden önce dikkat edilecekler

dev.to göçü genç ve hızlı hareket eden bir süreç olarak tanımlıyor ve programatik API'nin kararsız olduğu konusunda uyarıyor. Derleme araçları, linter'lar ve TypeScript derleyici API'sini doğrudan çağıran özel scriptler en büyük uyum yüküyle karşı karşıya; çünkü yazıldıkları JavaScript uygulamasını değil, yeni yerli uygulamayı takip etmek zorundalar.

Neden önemli

TypeScript'in derleme adımı, hem editörde hem de CI'da neredeyse her TypeScript projesinin kritik yolunda yer alıyor. Tür denetimi süresinde 8 ila 12 katlık bir azalma, dakikalar süren beklemeleri saniyelere indiriyor, CI dakikalarını doğrudan kesiyor, büyük kod tabanlarında otomatik tamamlama ve tanılamaları çok daha erken kullanılabilir kılıyor ve sonunda denetimler sırasında çok çekirdekli donanımı çalışmaya dahil ediyor. Sadık taşıma stratejisi ve yan yana göç yolu, olgun bir aracın bu denli toplu değişimini hiç olmadığı kadar gerçekçi kılan şeylerdir. Bu aynı zamanda daha geniş ekosistem için de önemli bir kayma: performans baş özellik olarak gelirken, derleyici API'si üzerine doğrudan inşa edilmiş araçların artık uyum sağlaması gereken yeni bir temeli var.

  • #typescript
  • #go
  • #compilers
  • #developer-tools
  • #performance

İlgili yazılar