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の学習は、プログラミング言語の学習というより、**「コンピュータとの正しい対話方法」**の学習に近い気がします。
まだまだエラーは出ますが、最近は赤文字を見ると「お、またアドバイスをくれたな」と思えるようになりました。(嘘です、まだイラッとします)