Rust'ı yeniden yazmak
- Rust programlama dili ilk nesil bir ürün gibi hissettiriyor
- Rust'ın ilk cazibesi: cebirsel tipler, bellek güvenliği, performans kaybı olmaması, modern paket yöneticisi
- 4 yıl kullandıktan sonra, Rust'ın her zaman kusursuz olmadığı görülüyor
- Dilin gelişimi çok yavaşladı
- Birçok kararsız özellik kararlı Rust'a dahil edilmiyor
Harika bir dil
- Rust derleyicisini fork edip yeni bir "seph" sürümü oluşturmak istiyor
- Rust'ın mevcut özelliklerini korurken yeni özellikler eklemek mümkün
Fonksiyon trait'leri (etkiler)
- Rust, struct'lar için trait tanımlıyor ancak fonksiyonlar için de trait tanımlamaya ihtiyaç var
- Fonksiyonların çeşitli özellikleri ifade edilebilir
- Fonksiyonun panic oluşturup oluşturmadığı
- Sabit bir stack boyutuna sahip olup olmadığı
- Fonksiyonun sonuna kadar çalışıp çalışmadığı ya da ortada bekleyip beklemediği
- Fonksiyonun saf olup olmadığı
- Fonksiyonun unsafe kod çalıştırıp çalıştırmadığı
- Fonksiyonun sonlanmayı garanti edip etmediği
Derleme zamanı yetenekleri
- Birçok Rust projesi çok sayıda üçüncü taraf crate kullanıyor
- Bu crate'ler tedarik zinciri riskini artırıyor
- Güvenliğe duyarlı fonksiyon çağrılarını açıkça izinli hale getiren bir özellik eklenmesi öneriliyor
fs_write gibi işlevleri çağırmak için açık izin vermek gerekecek
Pin, Move ve struct ödünç alma
Pin, Rust'ın borrow checker sorununu çözmek için kullanılan karmaşık bir hack
Pin yerine Move işaretleyici trait'ini kullanmak daha mantıklı olabilir
- Struct alanlarını ödünç verilmiş durumda işaretleyebilecek bir söz dizimi öneriliyor
Move işaretleyici trait'i ile Mover trait'inin eklenmesi öneriliyor
Derleme zamanı
- Zig'in
comptime özelliğini getirerek Rust makro dilinin yerine kullanma önerisi
- Derleme zamanında kod çalıştırabilecek küçük bir yorumlayıcı eklenmesi
- Rust'ın makro dili yerine doğrudan Rust'ın kendisini kullanmak
Küçük düzeltmeler
impl<T: Copy> for Range<T> düzeltmesi
- İlişkili tiplere sahip
derive için düzeltme
if-let ifadesinde mantıksal AND desteği
- Ham pointer'ların kullanılabilirliğini iyileştirme
- Tüm yerleşik koleksiyon tiplerine
Allocator argümanı ekleme
Kapanış düşünceleri
- Asenkron özelliklerin de iyileştirilmesi gerekiyor ancak bunun için ayrı bir yazı gerekli
- Değişikliklerin çoğu mevcut Rust ile uyumlu değil
- Yeni bir Rust sürümü gerekebilir
- GitHub RFC sürecinden yorulduğu için derleyiciyi doğrudan fork etmeyi düşünüyor
GN⁺ özeti
- Rust, ilk cazibesine rağmen kusursuz değil
- Dilin gelişimi yavaşladı ve birçok kararsız özellik kararlı Rust'a eklenmiyor
- Fonksiyon trait'leri, derleme zamanı yetenekleri, Pin ve Move iyileştirmeleri gibi çeşitli öneriler bulunuyor
- Bu öneriler Rust'ın kullanılabilirliğini önemli ölçüde iyileştirebilir
- Benzer özelliklere sahip diğer diller arasında Zig de var
1 yorum
Hacker News görüşleri
Rust RFC sürecine dair görüş
Rust'un bağımlılık sorunu
Rust'un mevcut durumu
Rust'un yeniden yazılmasına dair görüş
Rust'un karar alma sürecine yönelik memnuniyetsizlik
Josh Triplett'in yorumu
Rust'un karmaşıklığına dair görüş
Rust'un hızına dair görüş
Mutex iyileştirmelerine dair görüş
async fngibi özellikler eklendi ve bunlar daha karmaşık özelliklerin uygulanması için temel oluşturduRust'un özellik geliştirme hızına dair görüş
Rust'ta özellik tasarımına dair görüş
Rust'un borrow checker sorunları
Rust'un derleme zamanı özellikleri
Rust'un kararsız özellikleri
Rust'un gelişim hızına dair görüş