# Rust Nasıl Öğrenilir? Kurulum, İlk Program ve Sahiplik Kavramı

- Kaynak: https://teknopiksel.com/rust-ogrenme-yol-haritasi-h100874.html
- Yazar: Mehmet Ali Demirci
- Yayın: 2026-11-04
- Bölüm: Kodlama
- Yayıncı: Teknopiksel

> Rust'ı kurmak, cargo ile ilk projeyi çalıştırmak ve en çok korkulan konu olan sahipliği (ownership) sade örneklerle anlamak için başlangıç rehberi.

**Kısa cevap:** Rust'ı rustup.rs üzerinden kurun, cargo new ile proje açıp cargo run ile çalıştırın. Zor kısım sahiplik kuralıdır: her değerin tek sahibi vardır, sahip kapsamdan çıkınca değer silinir, ödünç alma (&) ile kopyalamadan paylaşırsınız.

Rust, hız ve bellek güvenliğini birlikte veren bir sistem programlama dilidir. Tarayıcılarda, işletim sistemi bileşenlerinde, komut satırı araçlarında ve bulut altyapısında giderek daha fazla kullanılıyor.

Öğrenmesi Python'dan zordur; çünkü derleyici sıkı kurallar koyar. Karşılığında çalışan programlarda çökme ve bellek hatası çok daha azdır. Bu rehber ilk gün yapmanız gerekenleri ve en kritik kavramı anlatıyor.

## Adımlar

### 1. Rust'ı kurun

Resmi kurulum aracı **rustup**'tır. macOS ve Linux'ta:

```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

Windows'ta rustup.rs adresinden `rustup-init.exe` dosyasını indirin; Visual Studio Build Tools kurulumunu da isteyebilir. Kurulum sonrası terminali yeniden açıp şunu çalıştırın:

```
rustc --version
cargo --version
```

**cargo** Rust'ın proje, paket ve derleme aracıdır; günlük işin çoğunu onunla yaparsınız.

### 2. İlk projeyi oluşturun

```
cargo new merhaba
cd merhaba
cargo run
```

`src/main.rs` dosyasında şunu görürsünüz:

```
fn main() {
    println!("Merhaba, dünya!");
}
```

`println!` sonundaki ünlem, bunun bir *makro* olduğunu gösterir. Şimdilik normal bir yazdırma komutu gibi düşünebilirsiniz.

### 3. Değişkenler varsayılan olarak değişmezdir

```
fn main() {
    let x = 5;
    // x = 6;            // hata: x değişmez
    let mut y = 5;        // mut: değiştirilebilir
    y = 6;
    println!("{x} {y}");
}
```

Bu tasarım kasıtlıdır: değişmeyen veri hatayı azaltır. Değiştirmek istediğinizi `mut` ile açıkça belirtirsiniz.

### 4. Sahiplik (ownership) kuralını anlayın

Rust'ı Rust yapan kural üç cümledir:

- Her değerin bir sahibi vardır.
- Aynı anda yalnızca bir sahip olabilir.
- Sahip kapsamdan çıkınca değer silinir.

```
fn main() {
    let a = String::from("merhaba");
    let b = a;            // sahiplik b'ye taşındı
    // println!("{a}");   // hata: a artık geçersiz
    println!("{b}");
}
```

Çöp toplayıcı olmadan bellek güvenliği bu kuraldan gelir. Derleyici hatayı çalıştırmadan önce yakalar ve genellikle ne yapmanız gerektiğini yazar.

### 5. Ödünç alma: kopyalamadan paylaşın

```
fn uzunluk(s: &String) -> usize {
    s.len()
}

fn main() {
    let a = String::from("merhaba");
    let n = uzunluk(&a);   // & : ödünç ver, sahipliği verme
    println!("{a} {n}");   // a hâlâ geçerli
}
```

`&` ile bir değeri okuma amaçlı ödünç verirsiniz. Değiştirmek için `&mut` kullanılır; aynı anda ya birden çok okuyucu ya da tek bir yazıcı olabilir.

### 6. Hata yönetimi: Result ve Option

```
use std::fs;

fn main() {
    match fs::read_to_string("notlar.txt") {
        Ok(metin) => println!("{} karakter", metin.len()),
        Err(e) => println!("Okunamadı: {e}"),
    }
}
```

Rust'ta istisna (exception) yoktur. Hata ihtimali olan işlem `Result` döner ve onu ele almak zorundasınız. Bu, programların beklenmedik yerde çökmesini engeller.

### 7. Nereden devam edilir?

- **The Rust Book** (doc.rust-lang.org/book): resmi ve ücretsiz kitap, en iyi başlangıç kaynağı.
- **Rustlings**: derleyici hatalarını düzelterek ilerlediğiniz küçük alıştırmalar.
- İlk gerçek proje: komut satırında dosya arayan basit bir araç (grep benzeri).

Derleyici hatalarını okumaktan korkmayın; Rust'ın hata mesajları sektörün en açıklayıcıları arasındadır.

## Sık sorulan sorular

### Rust öğrenmeye değer mi?

Sistem araçları, performans gereken servisler, WebAssembly ve gömülü yazılımla ilgileniyorsanız evet. Web sitesi ya da veri analizi için Python ve TypeScript daha hızlı sonuç verir.

### Rust, Go'dan zor mu?

Evet. Go daha hızlı öğrenilir; Rust ise bellek üzerinde daha fazla kontrol ve performans sunar.

### İlk dilim Rust olabilir mi?

Olabilir ama zordur. Programlamaya yeni başlıyorsanız önce Python ile temel mantığı oturtmak motivasyonu korur.

### Rust için iyi bir editör hangisi?

VS Code ile rust-analyzer eklentisi ücretsizdir ve yeterlidir.
