Rust, Mozilla ve bağımsız geliştiricilerin katkılarıyla geliştirilmekte olan, açık kaynak kodlu ve çok paradigmalı, nesne tabanlı bir programlama dilidir. Bir Mozilla çalışanı Graydon Hoare’nin kişisel projesi olarak geliştirilmeye başlanan Rust, Mozilla ekibinin dikkatini çekmiş ve Rust’asponsor olmasıyla, Rust resmen Mozilla’nın kanatları altına geçmiştir. İlk stabil sürümü 2015 yılında yayınlanan Rust, geliştiricilerin hızlı ve güvenli yazılımlar geliştirirken aynı zamanda çoklu işlemlerin tüm avantajlarından faydalanmasını hedeflemektedir.
Basitlik kavramının dışında kalan Rust’ın hedefi, modern programlama dillerinde olduğu gibi “basit bir programlama dili” olmak değildir. Rust, daha ziyade işi bilen geliştiriciler yetiştirmek, semantik hareket etmek ve bellek garantili hızlı yazılımlar geliştirmek isteyen kullanıcılar için geliştirilmiştir. Stack Overflow’un 2018 anketine göre Rust, 100 bin katılımcının yer aldığı ankette “en sevilen programlama dili” kategorisinde birinci olmayı başarmıştır.


Rust Programlama Dili

Mozilla’nın 2009 yılında sponsoru olmasıyla birlikte hız kazanan ve geniş bir geliştirici topluluğu tarafından geliştirilen Rust, verimli ve açık kaynak kodlu bir programlama dilidir. Genel maksatlı bir programlama dili olan Rust’ı kullanarak web uygulamaları, çeşitli yazılımlar, kütüphaneler ve hayalinizdeki birçok yazılımı geliştirebilirsiniz. Düşük Seviyeli Programlama Dili (low-level language) olan Rust’ın en çok tercih edildiği alanlar ise gömülü sistemler ve performansın önemli olduğu kodlama alanlarıdır. Şimdilik emekleme aşmasında olması nedeniyle bazı basit projelerle karşımıza gelen Rust’ın ileride bir gün son teknoloji3D oyunların geliştirilmesine kullanılmaması için hiçbir nedeni yok.
Birçok açıdan işlevsel bir programlama dili olmasına karşın Rust’ın öncelikli hedefinin bir web framework’ü haline gelmek olmadığını bilmelisiniz. Rust, Ruby on Rails yerine, yüksek performansın gerçekten kritik olduğu alanlarda sahneye çıkmak için geliştirildi. Rust programlama dilinin başlıca özellikleri olarak ise şunları gösterebiliriz.

  • Sıfır maliyetli soyutlamalar
  • Semantik hareket etme avantajı
  • Garantili bellek güvenliği
  • Veri yarışları olmayan iş parçacıkları
  • Özellik tabanlı jenerik (trait-based)
  • Desen eşleştirmesi
  • Sonuç odaklı
  • Minimum çalışma zamanı (runtime)
  • Verimli C bağlantıları

Birçok geliştiricinin Rust’ı C ve C++ karşısında güçlü bir alternatif kabul etmesinin en önemli nedeni Rust’ın güvenli kod yazma konusunda geliştiriciye sunduğu avantajlardır. Dilin dahili olarak sahip olduğu “safe code” özelliği sayesinde, oluşturulan nesneler baştan sona yönetilebiliyor. Bu da geliştiricinin C ve C++ dillerinin aksine herhangi bir aritmetik nokta oluşturması veya belleği yönetmesi ihtiyacını ortadan kaldırıyor. Bir nesne için uygun miktarda bellek atamasının yapılması veya kullanmasına izin verilmesi nesne için yeterli oluyor. Bu sayede yanlışlıkla veya kazara oluşacak bellek tüketiminin önüne geçilmiş oluyor. Objenin sistemle işi bittiğinde ise sistem tarafından otomatik olarak devre dışı bırakıyor. Anlayacağınız, Rust muadillerinin aksine daha güvenli kodlar oluşturmaya yardımcı oluyor. Yönetimsiz kodların yazılması ve bunları bug-free hale getirmek elbette Rust geliştiricilerini zaman zaman zorluyor fakat sistemde hiçbir zaman olası güvenlik açığı tehditleri oluşturulmamış ve daima engellenmiş oluyor. Performans açısından yönetimsiz kodlar oluşturmak daha da yüksek verim alınmasını sağlıyor.


Geliştircilerin Rust’ı karşılaştırdığı ve Rust’ın en güçlü bir diğer rakibi ise Go programlama dili. Go programalama dili de “memory safe” ve düşük seviyeli bir programlama dili olmasıyla öne çıkıyor. Rust bu aşamada aradaki farkı sunduğu eşzamanlama özelliğiyle kapatıyor. Go, geliştiricilerinin daha basit ve sade kodlar yazmasını istiyor. Rust’da ise bu çaba yok. Önemli olan az uğraşmak değil; çok uğraşmak, temiz kodlar oluşturmak ve kodların güvenle, en yüksek performansta çalışmasını sağlamak.
Rust ile Yapılan Proje Örnekleri

Rust’ın henüz gelişim aşamasında ve emekleme döneminde bir programlama dili olduğunu tekrardan belirtmekte fayda var. Artan geliştirici sempatisine karşın Rust ile henüz dünya çapında yankı uyandıracak projeler geliştirilmedi. Bunun nedeni dilin işlevsiz olması değil, yeterince geliştiricinin Rust’ı kullanmaya başlamamış olmasıdır. Topluluk geliştiricisi örneklerine bakmamız gerekirse Rust’ın şu an için en önemli projelerinden biri redox’dur. Redox; Rust programlama dili kullanılarak geliştirlen bir işletim sistemi sistemi projesidir.
Rust ile yapılan bir diğer etkili örnek ise cgmath’dir. Cgmath, bir doğrusal cebir ve bilgisayar grafik kütüphanesidir. Rust ile geliştirilen en önemli web framwork’ü ise Iron’dur. Ayrıca Rust geliştiricileri tarafından geliştirilen bir Render motoru işlevli Doom renderer’i de örnek gösterebiliriz.
Rust Dersleri

Rust eğitimi almak ve kendinizi bu programlama dili konusunda geliştirmek istiyorsanız, başvurabileceğiniz bazı Rust dersleri ve eğitim kaynakları var. Henüz yeni bir dil olması ve İngilizce kaynakların sınırlılığı nedeniyle Rust için kullanabileceğiniz Türkçe dilinde etkin bir kaynak yok. Fakat İngilizce alanında Rust için nokta atışı eğitim kaynakları mevcut.

  • Bunların ilki Mozilla tarafından sunulan ve Rust’ı detaylarıyla taslak haline öğrenmenize yardımcı olan bir YouTube oynatma listesi. Mozilla tarafından oluşturulan oynatma listesi yardımıyla daha ayrıntılı biçimde Rust nedir, ne değildir ve geleceğinin ne yönde olduğu hakkında bilgi alabilirsiniz. YouTube listesine ulaşmak için buraya tıklayabilirsiniz.
  • Bir diğer ana kaynak ise Rust’ın kendi resmi web sitesi üzerinden sunulmakta olan online eğitim kitabı. İki farklı sürümü olan online eğitim kitabının ilki, ilk sürümle birlikte yayınlanan kitaptır. İkinci sürümü ise Rust’ın artan popülaritesinden sonra tekrardan yazılan eğitim kitabıdır. Her iki kitaba da buradan ulaşabilirsiniz.
  • Son olarak online örnekler ve diğer anlatımlara erişmek için Rust’ın resmi sitesinden yardım alabilirsiniz.