Rust, hızlı çalışan, segfaults’ları önleyen ve thread güvenliğini garanti eden bir sistem programlama dilidir.
Mozilla çalışanı olan Graydon Hoare tarafından kişisel proje olarak geliştirilmeye başlanmış, daha sonra da Mozilla’nın 2009’da sponsor olmasıyla birlikte Mozilla Research tarafından günümüzde hala geliştirilmeye devam edilen bir programlama dilidir. Mozilla dilin karakterini sıfır maliyetli soyutlama, bellek güvenliğini garanti eden, veri yarışları olmayan threadler, nitelik temelli genericli, desen eşleştirmeli, çıkarım türlü, hızlı runtime süresi ve verimli C bağları olan bir dil olarak tanımlıyor.
Rust’ın ilk kararlı sürümü olan 1.0, 15 Mayıs 2015’te yayımlandı. Rust dilinin yapısal özelliklerine geçecek olursak Rust temelde orjnal bir dil olarak kabul edilemeyebilir. Diğer dilleri iyi özllikleri alınarak bir dil olarak tanımlayabiliriz. C++ dilinin hafıza referanslama ve destructor özellikleri, SML’in veri yapıları, Python’un lexer sistemi gibi özelliklerini alarak kendine uygun bir biçimde birleştirmiş ve sonuç olarak Rust gibi bir dil ortaya çıkmış. Aynı zamanda bazı dillerin kötü yanlarından da dersler çıkartarak onlara çözüm getirmiş. Mesela, C++’ın bellek güvenliği problemlerinden dersler çıkartarak bellek güvenliği sorunu çözmesi örnek olarak verilebilir.
Rust’ı diğer dillerden ayıran en büyük özellik bence varsayılan olarak memory safe bir dil olması. Peki memory safety nedir? Memory safety; bir dilin RAM’de bellek ayırırken herhangi bir açığa neden olmayacağından emin olduğu anlamına geliyor. C ve C++ gibi diller memory safe bir değillerdir (yani memory unsafe dillerdir.) Bunun nedeni de C ve C++ da pointerların olmasıdır. Örneğin C’de bir pointer tanımlayıp, daha sonra o pointer ile işiniz bittiğinde belleği serbest bırakmazsanız, o ayrılan veri belleğinizde kalacaktır ve bellek sızıntısı gibi açıklara neden olacaktır. Rust buna Borrowing ile bir çözüm getirmiştir.
Rust’ın temel özelliklerinden biri fonksiyonel bir dil olmasıdır. Yani nesneye yönelimli bir dil değilir. Fakat Rust’daki gelişmiş Struct, trait ve implementation yapıları nesneye yönelik bir dil olmamasının eksikliklerini gayet iyi bir şekilde gideriyor. Örneğin diğer dillerde struct en basitinden belirli türlerde verileri depolayan bir yapıdır. Rust bunu bir adım öteye taşıyıp, aynı zamanda impl(implemetation) yapıları ile structlara fonksiyon ekleyebilme özelliği katmıştır.
Rust programlama dilinin Hello World koduna bakacak olursak;
fn main() {
println!(“Hello, world!”);
}
Koddan anlayacağımız üzere fn anahtar kelimesi fonksiyon tanımlanmasını belirtiyor. Diğer dillerden aşina olduğumuz gibi println fonksiyonu ekrana yazdırma işlemi yapabiliyoruz. C ailesinden alışkın olduğumuz parantez aynı formatta bu dilde de kullanılmaktadır.Rust, sözdizimsel olarak C++’a benzemekle birlikte, tasarımcıları performansını korurken daha iyi bellek güvenliği sağlamayı amaçlamaktadır.
Rust açık kaynaklı bir programlama dilidir. 2016 ve 2017 yıllarında Stack Overflow Developer Anketinde “En Sevilen Programlama Dili” sıralamasında birinci oldu. Rust’un hedefi, eşzamanlı ve yüksek güvenilirliğe sahip sistemler için bir dildir ve “büyük programlama” için bir dildir; yani, büyük sistem bütünlüğünü koruyan sınırlar yaratmak ve sürdürme amacı gütmektedir.
Bir yanıt bırakın