Bu neden önemli?
Büyük bir projeyi başka bir dile taşımak eskiden yıllar süren, çoğu zaman hiç denenmeyen bir işti. Yapay zekâ ajanları bu hesabı değiştiriyor. Ama işin sırrı sadece model değil, iyi bir test takımı ve sıkı bir kontrol düzeni.
Bun nedir, sorun neydi?
Bun, JavaScript ve TypeScript kodunu çalıştıran bir araç. Node.js’e benzer ama daha fazlasını tek pakette sunuyor: paket yöneticisi, test aracı, paketleyici (bundler). Claude Code ve OpenCode gibi araçlar da Bun üzerinde çalışıyor. Bun, Aralık 2025’te Anthropic tarafından satın alındı.
Bun ilk günden beri Zig diliyle yazılmıştı. Zig hızlı ve düşük seviyeli bir dil. Belleği senin yerine yönetmiyor: Bir yer ayırdıysan, onu ne zaman ve kaç kez serbest bırakacağını sen hatırlamak zorundasın.
Bun’ın yaratıcısı Jarred Sumner’ın yazısına göre, yaşadıkları hataların çoğu tam da buradan çıkıyordu:
- Use-after-free: Kütüphaneye iade ettiğin kitabı okumaya devam etmek gibi. O bellek artık başkasına verilmiş olabilir, program çöker.
- Double-free: Aynı kitabı iki kez iade etmeye çalışmak.
- Bellek sızıntısı: Kitabı hiç iade etmemek. Program zamanla şişer.
Neden Rust?
Rust, bu tür hataların çoğunu daha kod çalışmadan, derleme sırasında yakalıyor. Her verinin bir “sahibi” var. Sahibinin işi bitince bellek otomatik temizleniyor (Rust’ta buna Drop deniyor). Yani “temizlemeyi unutma” diye bir stil kuralına güvenmek yerine, derleyici seni zorluyor.
Sorun şu: Bun, yorum satırları hariç yaklaşık 535 bin satır Zig kodu. Sumner’ın tahminine göre bunu elle taşımak, kodu iyi bilen üç mühendisin bir yılını alırdı. Bu sürede hata düzeltme ve yeni özellik de durmuş olurdu.
Yapay zekâ nasıl kullanıldı?
Sumner, “Bun’ı Rust’a çevir, hata yapma” deyip beklemedi. Süreç adım adım ilerledi:
- Hazırlık: Önce Claude ile saatlerce konuşup Zig’deki kalıpların Rust’ta neye karşılık geleceğini bir belgeye yazdılar.
- Küçük deneme: 1.448 dosyanın hepsine geçmeden önce sadece 3 dosyayla denediler.
- Yazan + eleştiren düzeni: Her dosyayı bir Claude yazdı, iki ayrı Claude da “bunu yanlış bul” talimatıyla inceledi. Sonra bir başkası düzeltmeleri uyguladı.
- Paralel çalışma: Zirvede yaklaşık 64 Claude aynı anda çalışıyordu.
- Testler hakem: Bun’ın test takımı TypeScript ile yazıldığı için dil değişse de aynı testler kullanılabildi. Tüm platformlarda testler geçene kadar döngü devam etti.
Bun’ın açıkladığı rakamlar:
- İş 11 günde (3–14 Mayıs 2026) ana koda birleştirildi. Hiçbir test atlanmadı ya da silinmedi.
- Maliyet, API fiyatlarıyla yaklaşık 165 bin dolar.
- Kullanılan model, Anthropic’in o sırada henüz çıkmamış olan Claude Fable 5 modeliydi.
Sonuç ne oldu?
Şirketin verdiği bilgilere göre Rust’a geçen ilk sürüm (Bun 1.4.0):
- Eski sürümde görülen 128 hatayı düzeltiyor. Bunların bir kısmı bellek sızıntısı.
- Program dosyası Linux ve Windows’ta yaklaşık %20 küçüldü (başka iyileştirmelerle birlikte).
- Ölçülen işlerde %2–5 daha hızlı.
- Taşıma sırasında 19 yeni hata çıktı, hepsi düzeltildi. Çoğu, iki dilde aynı görünen ama farklı çalışan kodlardan kaynaklanıyordu.
Madalyonun öbür yüzü
Zig’in yaratıcısı Andrew Kelley, kendi blogunda bu anlatıya itiraz etti. Ona göre hatalardan kurtulmanın asıl yolu dil değiştirmek değil, hataları bulup temizlemeye gerçekten zaman ve emek ayırmak. Tartışmanın kişisel tarafları da var ama teknik soru ilginç: Güvenliği dil mi sağlar, disiplin mi?
Aynı hafta: TypeScript 7
Aynı hafta başka bir büyük taşıma da tamamlandı. Microsoft, TypeScript 7’yi yayınladı. TypeScript derleyicisi Go diline taşındı. Microsoft’a göre tam derlemeler çoğu projede 8–12 kat hızlanıyor. Burada da hedef, eski kodun mantığını olduğu gibi koruyarak dili değiştirmekti.
Düşün
- Bir yapay zekânın yazdığı kodu başka bir yapay zekânın kontrol etmesi sana güven verir mi? Neden?
- Bun’ın elinde iyi bir test takımı olmasaydı bu iş mümkün olur muydu?