Tech
Rust
Coding
Learning

Rustで100回コンパイルエラーを出して学んだこと

所有権という概念

PythonやJavaScriptばかり書いてきた僕にとって、Rustの所有権(Ownership)は異次元の概念でした。

fn main() {
    let s1 = String::from("hello");
    let s2 = s1; 
    println!("{}, world!", s1); // ここでエラー!
}

コンパイラに「s1はもう死んでいる」と怒られた時、僕は画面に向かって「なんでだよ!」と叫びました。

視点の転換

しかし、100回くらい怒られた後、気づきました。彼(コンパイラ)は意地悪をしているわけじゃない。メモリリークという未来の災害から僕を守ってくれているんだ、と。

Rustの学習は、プログラミング言語の学習というより、**「コンピュータとの正しい対話方法」**の学習に近い気がします。

まだまだエラーは出ますが、最近は赤文字を見ると「お、またアドバイスをくれたな」と思えるようになりました。(嘘です、まだイラッとします)