Rust Nedir?

rust

Özgün geliştiricilerin ve Mozilla’nın desteğiyle gelişimi devam eden açık kaynak koda ve birçok paradigmaya sahip, nesne merkezinde yer alan bir programlama dili olarak tanımlanabilir. Mozilla çalışanlarından biri olan Graydon Hoare’nin öz projesi olarak ortaya çıkan Rust, Mozilla ekibinin de gözüne çarptı ve Rust’a sponsor oldu. Rust resmi olarak Mozilla’nın altında güvence altına alındı. İlk defa stabil sürümü ise 2015 senesinde yayınlandı Rust’un. Geliştirici olarak çalışanların güvenilir ve seri bir şekilde yazılımları geliştirmesi ve eş zamanda çoklu işlemlerin bütün yararlarından faydalanılması, amaç olarak ilk sırada yer alıyor. Basitlik kelimesinin dış kısmında yer alan Rust’ın asıl hedefi, klasik programlama dillerinin aksine günümüzde olduğu gibi basit bir programlama dili olmamak. Rust, bundan daha iyi bir şekilde için ehli geliştiricileri sektöre kazandırabilmek için, anlamlı hareket edebilmek ve hafıza garantili hızlı yazılımlar ortaya çıkarmayı isteyen kullanıcılar için geliştirildi. 

2018 senesinde Stack Owerlow’un tarafından yapılan ankete 100 bin kişi katılım sağladı. Rust bu ankette “en sevilen programlama dili” aşamasında birinci programlama dili olarak seçildi ve bu alandaki konumunu kanıtlamış oldu.

Derinlemesine Rust

Mozilla tarafından 2009 senesinde yapılan sponsorluk anlaşması ile birlikte pozitif bir ivme kazanan ve yelpazesi geniş bir geliştirici grubu aracılığıyla geliştirilen Rust, verimi yüksek ve açık kaynak kodlu bir programlama dili oldu. Genellikle maksatlı bir programlama dili olarak karşımıza çıkan Rust vasıtasıyla çeşitli yazılımlar  web uygulamaları, kütüphaneler ve daha birçok yazlım kapasitesinin üstüne çıkartılabilir. Alt seviyeli bir programlama diline sahip olan Rust’ın daha çok tercih edildiği bölgeler mevcut. Bu bölgelerden ikisi ise ve performansın önemli olduğu kodlama alanları ve gömülü sistemler olarak ifade edilebilir. Hatta daha sonraki aşamalarda günümüzde basit projelerle varlığını sürdüren Rust son teknoloij 3D oyunların da gelişmesi için kullanılan bir programlama dili olarak ortaya çıkabilir. Birçok yönden de işlevi fazla bir programlama dili olmasına rağmen Rust bazı öncelikli hedeflere sahip. 

Bu önceliklerden biri Rust’ın web framework’ü şekline gelmesi olarak açıklanabilir. Rust, Ruby on Rails yerine, daha iyi bir performansın sahiden önemli olduğu yerlerde ve zaman dilimlerinde ortaya çıkmak amacıyla geliştirildi. Rust programlama dili diğer programlama dilleri gibi birçok özelliğe sahip.  Sıfır maliyetli soyutlamalar, veri yarışları olmayan iş parçacıkları, özellik tabanlı jenerik, desen eşleştirmesi, sonuç merkezli olması, en alt seviye çalışma zamanı, verimi yüksek C bağlantıları, semantik hareket etme avantajı ve garantili bellek güvenliği bu özelliklerden sayılabilir. Geliştiricilerin birçoğunun Rust’ı C ve C++ karşısında kuvvetli bir seçenek olarak görmesinin en mühim sebebi Rust’ın güvenilir kod yazma hususunda geliştiriciye sağlamış olduğu faydalar. Dilin bünyesinde sahip olduğu “safe code” özelliği vasıtasıyla meydana getirilen araçlar başından sonuna kadar idare edilebiliyor. Bu da geliştirici konumunda yer alanların C ve C++ dillerinin yerine bir aritmetik nokta oluşturması veya belleği idare etmesi ihtiyacını ortadan kaldırıyor.

Herhangi bir araç için gerekli miktarda bellek gönderiminin yapılması veyahut kullanmasına onay verilmesi araç için yeterli oluyor. Bu sebeple de yanlışlıkla ya da kazara oluşabilecek bellek tüketiminin de oluşma ihtimali ortadan kaldırılmış oluyor. Objenin sistem ile işlemleri bittiği zamansa sistem aracılığıyla kendiliğinden kullanım dışı bırakıyor. Özet ile Rust diğer rakiplerine göre daha güvenilir bir hizmetle daha güvenilir kodlar oluşturma sağladığı destekle öne çıkıyor. Yönetimi olmayan ya da yapılmayan kodların yazılması ile bu kodların bug-free şekline dönüştürmek şüphesiz ki Rust geliştiricilerini her zaman olmasa da bazı durumda zorlayarak çözülmesi karışık olan kompleks bir duruma düşürüyor fakat sistemde hiçbir zaman olması muhtemel güvenlik zafiyeti oluşturan tehditler oluşturulmamış olup her zaman engellenmiş oluyor. Performans yönünden de değerlendirilecek olursa yönetimsiz kodları oluşturmak aslında daha fazla verimi de beraberinde getiriyor.

Rust ve Rust’un Rakip Durumu

Geliştiricilerin genellikle Rust’ı mukayese ettiği ve Rust’a rakip olabilecek en güçlü bir diğer rakibi olarak Go programlama dili gösterilebilir. Go Programlama dili de Rust gibi memory safe ile alt seviyeli bir programlama dili olması ile birlikte dikkatleri üzerine çekiyor ve diğer programlama dillerine göre bir adım önde götürüyor işlerini. Rust tam da bu noktada ise aradaki farkı sunmuş olduğu eş zamanlama özelliğiyle ile kapatıyor. Go programlama dili, geliştiricileri tarafından daha kolay ve açık kodlar yazılmasını istiyor. Rust ise geliştiricilerinden böyle bir talepte bulunmuyor. Önemi yüksek olan az uğraşmak yerine daha çok uğraşmak, açık ve yararlı kodlar oluşturmak bu kodların da kodların güvenli bir şekilde, en fazla performans ile çalışmasını sağlamak.

Rust Aracılığıyla Yapılan Proje Örnekleri

İlk olarak belirtmek gerekiyor ki Rust daha gelişim evresinde olan ve emekleme dönemini devam ettiren bir programlama dili. Hızla yükselen geliştirici ilgisine karşı Rust ile günümüzde dünya genelinde bir yankı oluşturacak projeler geliştirilmedi. Bunun başlıca sebeplerinden biri Rust’un yeterli geliştirici sayısına ulaşmamış olması olarak söylenebilir. Topluluk olarak bir geliştiriciye bakılacak olursa Rust’un günümüzde en önemli projelerinden biri olarak Redox örnek olarak gösterilebilir. Redox, Rust programlama dili vasıtasıyla geliştirilen ve piyasaya sunulan bir işletim sistemi projesi olarak ifade etmek mümkün. Rust aracılığıyla da yapılan bir başka örnek ise cgmath. Cgmath, bilgisayar grafik yuvası ve bir doğrusal cebir olarak ifade ediliyor. Rust vasıtasıyla geliştirilen en önemli web framwork’ün Iron olarak gösterilmesinin yanı sıra; Rust geliştiricilerinin katkılarıyla da geliştirilen bir Render motoru işlevli Doom Renderer de bu projelere örnek olarak verilebilir.

Rust Eğitimi

Rust eğitimi alabilmek için ve bu programlama dilinde daha iyi olup bir gelişim sağlayabilmek için başvurulabilecek bazı Rust eğitim programları ve eğitim kaynakları mevcut. Henüz yeni bir programlama dili olmasının yanı sıra İngilizce kaynakların da kısıtlı olması sebebiyle Rust için kullanılabilecek Türkçe dil özelliğine sahip mevcut bir eğitim kaynağı yok fakat İngilizce dilinde Rust için eğitim veren birçok kaynak bulunuyor. Bu kaynaklardan ilki Mozilla vasıtasıyla piyasaya çıkarılan ve Rust’ı ayrıntılarıyla taslak şeklinde öğrenilmesine destek olan bir Youtube oynatma listesi. Bunun dışında diğer bir ana kaynak ise Rust’ın resmi internet sitesinden ulaşılabilecek olan çevrimiçi eğitim kitabı. İki farklı sürüme sahip olan bu çevrimiçi Rust eğitim kitabının ilk kitabı ilk sürüm ile yayınlanan bir kitap. İkinci sürümü ise Rust’ın hızla yükselen tanınmışlığından sonra yeniden yazılan eğitim kitabı. Son olarak ise çevrimiçi örnekler ile bunun dışında kalan anlatımlardan faydalanmak için Rust’un resmi sayfası ziyaret edilebilir.