30 puan yazan GN⁺ 2025-03-12 | 24 yorum | WhatsApp'ta paylaş
  • Microsoft, derleyici ve araçların native ortama taşınmasıyla TypeScript performansının 10 kat artırıldığını duyurdu
  • Editör açılış süresi büyük ölçüde iyileşiyor, build süresi 10 kata kadar kısalıyor ve bellek kullanımı ciddi biçimde azalıyor
  • tsc önizleme sürümünün 2025 ortasına kadar yayımlanması, 2025 sonuna kadar da tam proje build’i ve language service sunulması planlanıyor

TypeScript performans iyileştirmelerinin arka planı

  • TypeScript’in temel değeri, sunduğu üstün geliştirici deneyimi
  • Kod tabanı büyüdükçe TypeScript’in değeri artıyor, ancak büyük ölçekli projelerde performans sorunları ortaya çıkıyor
    • Uzun yükleme ve denetim süreleri yaşanıyor
    • Hızlı editör başlangıcı ile tüm kod tabanını analiz etme arasında denge gerekiyor
  • Yapay zeka tabanlı özellikler, hızlı ve doğru anlamsal bilgi sunulmasını gerektiriyor
  • Komut satırı build’leriyle kod tabanının durumunu doğrulama ihtiyacı artıyor

Native porta geçiş planı

  • TypeScript derleyicisi ve araçlarının native porta taşınması için çalışmalara başlandı
  • Performans iyileştirme hedefleri:
    • Editör açılış süresini büyük ölçüde kısaltmak
    • Build süresini 10 kata kadar azaltmak
    • Bellek kullanımını düşürmek
    Reklam
  • 2025 ortası: komut satırından type checking yapabilen tsc önizleme sürümünün yayımlanması planlanıyor
  • 2025 sonu: tam proje build’i ve language service sunulması planlanıyor

Kodu çalıştırma ve test etme

  • Kod, TypeScript Go kod deposu üzerinden build edilip çalıştırılabiliyor
  • Depoda tsc ve language server için build ve çalıştırma talimatları yer alıyor
  • Yeni özellikler hakkında düzenli güncellemeler paylaşılacak

Ne kadar hızlandı?

  • Mevcut TypeScript projelerinin build süreleri çeşitli popüler kod tabanlarında test edildiğinde şu performans artışları görüldü:
    • VS Code projesi, yaklaşık 1,5 milyon satır kodda 77,8 saniyeden 7,5 saniyeye düşerek yaklaşık 10,4 kat hızlandı
    • Playwright projesi, yaklaşık 350 bin satır kodda 11,1 saniyeden 1,1 saniyeye düşerek yaklaşık 10,1 kat iyileşti
    • TypeORM projesi, yaklaşık 270 bin satır kodda 17,5 saniyeden 1,3 saniyeye düşerek yaklaşık 13,5 kat iyileşti
    • date-fns projesi, yaklaşık 100 bin satır kodda 6,5 saniyeden 0,7 saniyeye düşerek yaklaşık 9,5 kat iyileşti
    • tRPC projesi, yaklaşık 18 bin satır kodda 5,5 saniyeden 0,6 saniyeye düşerek yaklaşık 9,1 kat iyileşti
    • rxjs projesi, yaklaşık 2 bin satır kodda 1,1 saniyeden 0,1 saniyeye düşerek yaklaşık 11 kat iyileşti
  • Henüz tüm özellikler tamamlanmış değil, ancak çoğu kod tabanında 10 katı aşan performans artışı bekleniyor
  • Daha hızlı type checking ve kod gezinmesi mümkün hale geliyor
  • Yapay zeka araçları entegrasyonu ve gelişmiş refactoring desteği mümkün olacak

Editör performansındaki iyileşmeler

  • Editörün yüklenme ve yanıt verme hızı iyileşiyor
  • Visual Studio Code kod tabanı baz alındığında yükleme süresi:
    • Şu an: 9,6 saniye → native sürüm: 1,2 saniye (yaklaşık 8 kat iyileşme)
    Reklam
  • Bellek kullanımı da yaklaşık %50 azalıyor
  • Language service işlemlerinde (otomatik tamamlama, hızlı bilgi gösterimi, tanıma gitme vb.) performans artışı bekleniyor
  • Language Server Protocol (LSP) tabanında geçiş çalışmaları sürüyor

Sürüm yol haritası

  • TypeScript 5.8 yayımlandı, TypeScript 5.9 ise yakında çıkacak
  • JS tabanlı TypeScript kod tabanı 6.x sürüm serisiyle geliştirilmeye devam edecek
  • Native kod tabanı kararlı hale geldiğinde TypeScript 7.0 olarak yayımlanacak
    • TypeScript 6 → JS tabanlı sürüm
    • TypeScript 7 → native tabanlı sürüm
  • TypeScript 7 yayımlandıktan sonra da 6.x sürümü bir süre daha desteklenecek

Sonraki adımlar

  • Performans, derleyici API’si, LSP ve diğer konular hakkında ek bilgiler paylaşılacak
  • Sık sorulan sorular için GitHub FAQ sayfasına bakılabilir
  • 13 Mart 2025 tarihinde TypeScript topluluğu Discord’unda AMA düzenlenecek (PDT 10:00 | UTC 17:00)

24 yorum

 
click 2025-05-25

Herkesin structural typing meselesini pek düşünmeden ortaya attığını hissettim.
C# ya da Rust gibi nominal typing kullanan bir dile yeniden yazmak için projenin temel yapısını fazlasıyla değiştirmek gerekeceğinden, bu da muhtemelen kolay olmazdı.
Structural typing benimseyen diller arasında mevcut JS tabanlı yapıya göre daha yüksek performans sağlayabilecek seçenek muhtemelen ya C++ ya da Go olurdu; ama üretkenliği de hesaba katınca başka bir alternatif yok.

 
kuthia 2025-03-13

Bir süredir TS ile daha az haşır neşir olmaya başlamıştım ama böyle bir haberi görünce yine ilgimi çekiyor doğrusu?

 
[Bu yorum gizlendi.]
 
pitou106 2025-03-14

TS'te gerçekten kaçınılmaz durumlar dışında any'yi gelişi güzel kullanırsan, vanilla kullanmaktan farksız olur.. haha

 
yshrust 2025-03-13

Görünüşe göre tartışma epey hararetli; Anders Hejlsberg bizzat yorum bırakmış.

https://github.com/microsoft/typescript-go/…

 
jjpark78 2025-03-13

TypeScript ile derleyip çıktının doğrudan ikili dosya olarak gelmesini isteyen biri

 
passerby 2025-03-13

Front-end konusunda yabancıyım da.. swc'den farklı mı?

 
caniel 2025-03-13

SWC, Babel gibi uyumlu JavaScript kodu üretmeye ve paketlemeye odaklanırken, bu ise TypeScript kodunu JavaScript'e dönüştürmeye veya hataları kontrol etmeye odaklanıyor.

 
halfenif 2025-03-12

TypeScript kodu artık TypeScript ile yazılmıyorsa, ekibin doğrudan TypeScript kullanmaması uzun vadede geliştirme deneyimini etkileyebilir.

Buna "kendi yaptığını kullanmak" deniyor ya. Kendi yaptığın şeyi bizzat kullanmak. Ama konu bir dil olunca, insan biraz düşünüyor.

 
dongjinahn 2025-03-14

Bence, ts’nin temelini oluşturan js’in runtime’larının (ör. spidermonkey, v8) çoğu C++ ile yazılmış ve js ile gerçekleştirilmiş bir runtime da yok;
js -> js derlemede de pure js kullanınca aşırı yavaş kaldığı için herkes esbuild falan gibi araçlara geçiyorsa,
ts tarafında da ille de kendi yemeğini kendi pişirme yaklaşımında ısrar etmeye gerek var mı diye düşünüyorum

 
wogns3623 2025-03-12

İleride mevcut TypeScript kod tabanının bakımının ihmal edilmesinden endişe ediyorum

 
tsboard 2025-03-12

Sevindirici bir haber! İlginç bir şekilde, MS'in TypeScript dili beklentilerin aksine gerçekten de oldukça beklenmedik(?) seçimler yapıyor gibi görünüyor. MS açısından bakınca bu neredeyse ilk açık kaynak projesi sayılır; ayrıca JS'yi değiştirmeye çalışan Google'ın Dart'ından farklı olarak JS'yi tamamlamayı seçmesi de gerçekten akıllıca hissettirmişti. Bu kez yerel porta çevrilen dil için de kendi dilleri epey fazla olmasına rağmen Google'ın Go'sunu seçmiş olması şaşırtıcı.

 
galadbran 2025-03-12

Ha? Deno tarafında zaten Rust tabanlı bir toolchain yapan bir şey vardı sanki... birdenbire Go mu oldu?

 
asheswook 2025-03-12

Sanırım Node gibi bir runtime'dan bahsediyorsunuz; ancak burada kastedilen, TS dilinin derleyicisinin kendisi.

 
galadbran 2025-03-13

Ah, yazıyı biraz daha okuyunca editörün hızlanması gibi şeylerden de bahsedildiği için kafam karışmış sanırım.

  • tsc 10 kat hızlanmış. Yani ts -> js transpile süresi çok ciddi biçimde kısalmış.
  • VSCode gibi ts ile geliştirilmiş büyük projeler yüklenirken hız çok artmış. Yani tsnin sözdizimi denetimi gibi tscnin işlevlerini paylaşan mantığın hızlandığı anlamına geliyor.
  • VSCode'un çalışma hızının arttığı anlamına gelmiyor.
    Demek istenen bunlarmış.
 
illiil1lii 2025-03-12

Özyinelemeli generik tipler kullanırken yavaşlama yüzünden alternatif bir yol seçmek zorunda kaldığım oldu. 10 kat ise bu tür noktaların da iyileşebileceğini umuyorum.

 
tujuc 2025-03-12

"Neden Go?" tartışma başlığı oldukça ilginç.

https://github.com/microsoft/typescript-go/discussions/411

Düşünülmesi gereken şeyler de çok...

 
tsboard 2025-03-12

Öyle yani, ama .NET geliştiricilerinin ne hissettiğini de anlayabiliyorum...

 
riki3 2025-03-12

Dotnet ve Rust geliştiricileri epey öfkelenmiş görünüyor.

 
bungker 2025-03-12

Dotnet anlaşılır ama bence Rust, Go ile aynı konumda. Muhtemelen mevcut olarak yapılmış JS ile ilgili Go projeleri ve kütüphaneleri de bu kararı etkilemiş gibi görünüyor.

 
aa1567 2025-03-12

C# diline yönelik geliştirme durmuş değil ama C# kullanan framework'lerin ihmal edildiği hissini çok sık alıyorum.

 
clastneo 2025-03-12

Go ile yazın~

 
caniel 2025-03-12

Gerçekten çok heyecan verici.

 
GN⁺ 2025-03-12
Hacker News görüşleri
  • TypeScript ekibinden Daniel Rosenwasser duyuruyu paylaşıyor; ekip lideri Ryan Cavanaugh ile birlikte soruları yanıtlamaya hazır olduklarını söylüyor
    • Discord AMA'de daha fazla bilgi edinilebilir
  • Hızlı geliştirme araçları harika ve TypeScript ekibinin geliştirici deneyimi üzerine her zaman derinlemesine düşünmesi sevindirici
    • TypeScript kodu artık TypeScript ile yazılmazsa, ekibin TypeScript'i doğrudan kullanmaması uzun vadede geliştirici deneyimini etkileyebilir
    • Flow'un OCaml ile yazıldığı için başarısız olduğuna dair örnek anılıyor ve ekibin bu konudaki düşüncesi merak ediliyor
  • Daha önce Rust ile hızlı bir tsc denemesi yapan iki projeden bahsediliyor
    • stc: durduruldu
    • ezno: aktif olarak geliştiriliyor ve tsc ile bire bir uyumluluğu hedeflemiyor
  • Projeler çoğu zaman esnek bir betik diliyle başlasa da sonunda daha yerel ifadeler öne çıkıyor
    • Daha düşük seviyeli ifadelerle başlamanın daha iyi olabileceği düşünülüyor
    • Sunucuda JS runtime kullanma yönündeki temel varsayımın yeniden değerlendirilmesine yol açıyor
    • Betik dillerinin avantajları giderek azalıyor
  • Bir an için bunun 1 Nisan şakası olduğu düşünüldü
  • Go'nun seçilmiş olması iyi bulunuyor
    • Rust yerine Go'nun seçilmesi etkileyici
    • AOT derlenmiş .NET'in seçilmemiş olması üzücü bulunuyor
  • Yeni kod tabanını mevcut olanla mümkün olduğunca uyumlu tutmak önemli
    • Go'nun söz dizimi TypeScript kod tabanına benzediği için taşıma işlemi kolaylaşıyor
  • Golang ile TypeScript arasındaki sözdizimsel benzerliğe şaşırılıyor
    • Golang'da sum types kullanmanın zor olduğuna dair bir deneyim paylaşılıyor
  • Daniel ve Anders'ın native porta dair derinlemesine tartıştığı bir podcast tanıtılıyor
  • Büyük TypeScript dosyalarını refactor ederken performans sorunları yaşanıyor
    • Kod tabanının TypeScript'e geçirilmesi ekibe büyük fayda sağlamış olsa da performans sorunları hâlâ sürüyor
  • PHP kullandıktan sonra 4 yıl önce TypeScript kullanmaya başlanmış
    • TypeScript'in type system'i faydalı ve derleme hızı yüksek
    • Microsoft hayranı olunmasa da TypeScript'in iyi tasarlanmış bir dil olduğu düşünülüyor