今年はRustの学習をすると決めていたのでやっている。今までRuby, JavaScript(TypeScript) , (OCaml) ときて3つ目の新しい言語になる。
あれ?4つ目じゃないの?と思うかもしれないが、OCamlはカウントしていない。去年は一応OCamlをやっていたが、これは言語仕様を学ぶというよりは書籍『プログラミングの基礎』に出てくるダイクストラの実装をしたという感じである特定の狭いスコープしか理解していない気がする。
新しくプログラミング言語を学ぶ際、自分の知ってる既存の言語(RubyとかJavaScriptとか)から概念を近似して新しい言語の言語の概念を学ぼうとするが、これがなかなか厄介だ。コンテキストが違えば概念も微妙に違うのでへんに引きづられると大きな勘違いにつながる。
JavaScriptを学んだ時オブジェクトという言葉をRubyのオブジェクトと1対1に対応付けてしまって苦労したのは記憶に新しい。
Rustはそもそも自分の持ってい知識に合致しないことも多く苦戦しているが、やっぱり学習の根底にはRubyはJavaScriptの知識を適用しようとしているのがわかる。
じゃあまっさら状態で新しい言語を学ぶのが良いのか?と言われればそんなことはないんだけどね。