« Tüm yayınlar

Rust Her Zaman Doğru Seçim Değil: Dengeli Bir Eleştiri

Rust'ın karmaşıklığı, yavaş derlemesi, olgun olmayan tooling'i ve C/C++ entegrasyon zorlukları üzerine dengeli, teknik bir eleştiri.

2020 tarihli bu makale, Rust'ın güçlü yönlerine rağmen her proje için ideal olmadığını savunuyor. Yazara göre çoğu yazılım, sistem seviyesinde kontrol veya çöp toplayıcısız performansa ihtiyaç duymuyor; Kotlin ya da Go gibi yönetilen diller çok daha az karmaşıklıkla yeterli hız sağlayabiliyor.

Makale somut maliyetlere de dikkat çekiyor: Rust'ın sahiplik ve ödünç alma modeli, basit bir struct için bile değer, referans, Box, Rc veya Arc arasında seçim yapmayı zorunlu kılıyor; Kotlin'de aynı iş tek satırla çözülüyor. Derleme süreleri de sorun teşkil ediyor çünkü Rust bilinçli olarak çalışma zamanı performansını hızlı derlemeye tercih etmiş; pimpl benzeri bir idiom eksikliği ise bir crate'i değiştirmenin tüm bağımlı paketlerin yeniden derlenmesini gerektirmesine yol açıyor.

Olgunluk açısından da eksikler var: tek bir üretim seviyesinde derleyici (rustc), eksik bir alternatif (mrustc), tek LLVM backend'i ve resmi bir dil spesifikasyonunun bulunmayışı sayılıyor. Heap profiling araçlarının eksikliği ve büyük ölçekli refactoring desteğinin sınırlı olması gibi tooling zayıflıkları da ekleniyor. C/C++ dünyasıyla entegrasyon ise unsafe ve her zaman sıfır maliyetli olmayan köprüler gerektiriyor; performans bazı senaryolarda move semantiği kaynaklı memcpy davranışı ve ABI verimsizlikleri yüzünden C++'ın gerisinde kalabiliyor.

Sonuç olarak Rust, güvenlik/maliyet eğrisinde ilginç bir nokta olsa da modern C++, Ada, formel olarak doğrulanmış C veya kısıtlı tek iş parçacıklı iş yükleri için Zig gibi alternatifler bazı projeler için daha uygun olabilir.