Rust yerine Rue: aynı derecede güvenli ama daha erişilebilir

kapanış bildirimi

Bu makale İngilizce olarak da mevcuttur. Teknik yardımla tercüme edildi ve yayınlanmadan önce editoryal olarak gözden geçirildi.

Noel'den hemen önce tanıtılan yeni bir programlama dili olan Rue, bellek güvenliğini çöp toplayıcılar olmadan iyi performansla birleştiriyor. Benzer bir konsepti takip eden Rust'un daha da geliştirilmiş halidir. Ancak Rue'ya erişim, özellikle yeni başlayanlar için daha kolay olmalı. Özel bir özellik, AI asistanı Claude'un Rue için derleyiciyi (x86-64 ve ARM64) geliştirmesidir.

Duyurudan sonra devamını okuyun

Rue, Ruby on Rails ve Rust'ta önemli roller oynayan Steve Klabnik tarafından tasarlandı. Rust'a yeni başlayanların çoğunun anlamakta zorlandığı, Rust'un güvenli bellek ödünç alma konseptini basitleştirmeye çalışıyor.

Rue, değişken değer semantiğine sahip afin türleri kullanır. Bu, geliştiricilerin ilgili türleri yalnızca bir kez kullanabileceği anlamına gelir. Blogda bir örnek gösteriliyor:


struct FileHandle { fd: i32 }

fn example() {
    let handle = FileHandle { fd: 42 };
    use_handle(handle);     // handle moves here
    use_handle(handle);     // ERROR: value already moved
}

Ancak şunu açıkça belirtmeniz durumunda kopyalama mümkündür:


@copy
struct Point { x: i32, y: i32 }

fn example() {
    let p = Point { x: 1, y: 2 };
    use_point(p);   // p is copied
    use_point(p);   // OK, p is still valid
}

Tüketilmesi gereken bir değer ekleyebilirsiniz linear imza:

Duyurudan sonra devamını okuyun


linear struct DatabaseTransaction { conn_id: i32 }

fn example() {
    let tx = DatabaseTransaction { conn_id: 1 };
    // ERROR: linear value dropped without being consumed
}

Rue, derleyicinin halihazırda bu özellik ile değerlendirdiği ifadeler kavramını Zig'den alır. comptime. Türler şu şekilde de oluşturulabilir:


fn Pair(comptime T: type) -> type {
    struct { first: T, second: T }
}

fn main() -> i32 {
    let IntPair = Pair(i32);
    let p: IntPair = IntPair { first: 20, second: 22 };
    p.first + p.second
}

Klabnik, fikirlerini hayata geçirmek için Claude ile birlikte çalışır. Rue'nun nasıl görünmesi gerektiğine dair bir fikri olsa da derleyici oluşturma deneyimi yoktu. Bu iş yapay zeka tarafından yapılıyor: “Ve biliyor musun? İşe yaradı.” Bir programı derlemeye yönelik ilk girişim işe yaramadı, ancak bir dizi hata ayıklamanın ardından işe yaradı.

Rue sitesi bunun henüz başlangıç ​​aşamasında olan bir araştırma projesi olduğunu ve gerçek projelere hazır olmadığını vurguluyor. Katılmak isterseniz GitHub'u ziyaret edebilirsiniz.

Ayrıca okuyun


(DSÖ)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir