Merhabalar,
RUST programlama dilinin önümüzdeki yıllarda çok daha popüler olacağı ve bu sayede iyi paralar kazanabileceğinizi düşünüyorum.
Türkiye'de de çok popüler olduğunda bu konuyu hortlatmak amacıyla şimdiden r10'da konusu açılmış olsun istedim.
Vakit bulabilen arkadaşlar Rust'ın kendi sitesindeki kitaptan veya o'reilly programming rust kitabından öğrenmeye başlayabilir. Bu tavsiyem için muhtemelen ileride bana teşekkür edeceksiniz
Devnot sitesinden, Rust'ın ne olduğu hakkında bir yazıyı alıntılayarak konuyu bitiriyorum.
Rust programlama dili, özellikle güvenilir bir şekilde asenkron işler yapabilmek için tasarlanan, bellek güvenliği öncelikli, çoklu geliştirim yaklaşımlarına sahip bir sistem programlama dilidir. Çoklu geliştirim yaklaşımları olarak: eş zamanlı, fonksiyonel, generic, emirsel ve yapısal programlama dillerinin yeteneklerini bünyesinde barındırır. Söz dizimi olarak C++a benzemekle birlikte, yüksek bir performans ile güvenli bellek yönetimini gerçekleştirir.
Mozilla Researchte Graydon Hoare tarafından tasarlanan Rust, JavaScriptin geliştiricisi olan Brendan Eich, ve asm.js ile birlikte internet tarayıcısı motoru olan Servonun geliştiricisi olan Dave Herman gibi birçok ünlü geliştiricinin katkılarıyla oluşturulmuştur. Rust dilinin tasarımcıları, Servo tarayıcı motorunu yazarken bu dili iyileştirip yeni özellikler eklemişlerdir. Özgür ve açık kaynaklı derleyiciye sahip olan Rust, Stack Overflow geliştirici anketlerinde son 4 yıl üst üste en çok sevilen yazılım dili olmayı başarmıştır.
Dilin Tasarımı
Rust dili, asenkron işlemler ağırlıklı, oldukça güvenilir ve büyük ölçekli sistemlerin geliştirimi için tasarlanmıştır. Bu nedenle güvenilirlik, bellek düzeninin kontrolü ve eşzamanlılık gibi birçok özelliği barındıran bir işlem kümesine sahiptir.
Rust dilinin söz dizimi, C ve C++ ile benzerlikler gösterecek şekilde, kod bloklarının birbirinden ayrıldığı süslü parantezleri ve if-else-while-for gibi kontrol akışlarını içerir. C ve C++a özgü tüm anahtar kelimelerin bulunmasının yanında
match gibi regex kontrolü sağlayan bazı özel kontrol ifadelerini içerir. Söz dizimi C ve C++a benziyor gibi görünse de, derinlemesine ele alındığında Haskell gibi fonksiyonel dillere daha yakın niteliktedir. Kontrol akışı operatörleri de dahil olmak üzere her bir fonksiyon gövdesi çalıştırılabilir bir kod ifadesidir. Örneğin, Rusttaki sıradan bir if koşulu, Cdeki 3lü koşul operatörünün (a?x:y) yerini alabilir. Ayrıca fonksiyonların return ifadesi ile bitmeleri gerekmez, return ifadesi olmadığı durumda fonksiyon içerisindeki son ifade geri döndürülür.
Bellek Güvenliği
Rust dili bellek güvenli (memory-safe) olarak tasarlandığı için; null işaretçileri, silinen belleği gösteren işaretçiler (dangling pointers), ve birden fazla threadin veriyi isteme durumu (data races) gibi özellikler içermez. Bu nedenle değişkenler, sadece sabitlenmiş form kümeleri (struct, enum, vb.) aracılığıyla atanabilirler. Bu form kümeleri, girdi değerlerinin halihazırda forma verilmiş olmasını şart koşmaktadır. Diğer dillerde bulunan linked list ve binary tree gibi veri yapılarındaki işlevin sağlanması için NULL ifadesi yerine Rustta
option türü yer almaktadır. Bu tür içerisinde Some veya None olan test edilebilir iki adet veriyi barındırmaktadır. Ayrıca Rustta nesne yaşam döngüsünü yönetmek için borrow checker adında bir ödünç alma denetimi de mevcuttur.
Bellek Yönetimi
Rustın belki de en büyük özelliklerinden biri Java ve .NETteki gibi ölü nesnelerin işaretçilerinin otomatik olarak kaldırıldığı bir garbage collection sisteminin bulunmamasıdır. Bunun yerine bellek ve diğer kaynaklar, isteğe bağlı atomik referans sayımı ile birlikte, RAII (resource acquisition is initialization) ilkesi ile yönetilirler. Bu sayede Rust, çok küçük bir iş gücü ile kaynakların yönetimini sağlar. Ayrıca Rust, stack üzerinde değişkenlerin tahsis edilmesini kolaylaştırır ve Java gibi diğer dillerde bulunan intten Integera otomatik dönüştürme (boxing) işlemine de izin vermez.
Ayrıca & (ampersand) sembolünün kullanıldığı referans kavramı da mevcuttur. Bu referanslar çalışma zamanındaki referans sayımına dahil edilmezler. Bunun yerine derleme zamanında borrow checker tarafından doğrulanırlar. Bu sayede dangling pointer veya diğer beklenmedik davranışlar engellenmiş hale gelmektedir.
Bellek Sahipliği
Rustta her verinin benzersiz bir sahibinin olduğu bir sahiplenme (ownership) mekanizması mevcuttur. Bu sistemde verinin scopeu (çalışma alanı), sahibinin scopeu ile aynıdır. Böylece verinin scopeu tamamlandığında, sahibi de boşa çıkmış olur. Değerler, &T operatörü kullanılarak, immutable (değiştirilmez) referanslar tarafından değişkenlere atanabilirler. Değiştirilebilen (mutable) refarans operatörü olarak, &mutT veya sadece T kullanılabilir. Uygulama içerisinde her zaman ya birden çok immutable referans vardır, ya da yalnızca bir adet mutable referans bulunmaktadır. Rust derleyicisi derleme anında referansların doğru olarak atanıp-atanmadığını kontrol ederek bu kuralları uygular.
http://devnot.com/2019/rust-programlama-diline-giris/