Rustを学び始める
今週からRustを紐解き始めたので、経緯やRustについてまとめておきます。 Rustの学習は、こちらを参考にしています。
なぜRustを学ぼうと思ったのか
低レイヤーを学びなおしたかった
Java, C#, Python, Go とやってきた自分は、CPUやメモリやリソースなど、言語側の手厚いサポートされることに慣れていました。 ただ低レイヤー層をしっかり意識するのと、しないのとでは、プログラムの内部の挙動の理解度が全然違います。
小手先で動くものを簡単に作ることはできますが、もっと根本的なところから「それはメモリを圧迫していないか」「CPUを無駄に酷使して、無駄に高いインスタンスを使うことになってないか」といった低レイヤーからの視点も身に着けていきたいところです。
そういった意味でも、しっかり低レイヤーを学ぶことは、意義あることだと思いました。
今学ぶならC,C++よりRust
過保護な環境でプログラミングしていた僕としては、今からC,C++を泥臭く学ぶのは、レガシーに感じてしまい抵抗がありました。 話題性、安全性がありつつ、低レイヤーを学ぶのにRustは適しているのではないかと思います。
高評価の割合が多そう
stackoverflowの2021年のレポートですが、最も愛されている割合が多いのが、Rustでした。 insights.stackoverflow.com
何がそんなに愛されているのかが、気になっていました。
まだRustaceansになったばかりですが、Rustについて歴史と導入事例だけ簡潔にまとめておきます。
Rustとは
歴史
2006年 Graydon Hoareの個人プロジェクトとして開発が始まる。 Graydon Hoareさんが趣味で始めたものらしく、Swiftの開発にも関わっていた方です。
2009年 Mozillaの公式プロジェクトになる。 Graydon Hoareさんの所属していたMozillaが、2009年からRustにかかわり始め、2010年にプロジェクトとして公表しました。
2012年 0.1版リリースされる。 いわゆるプレアルファです。安定板リリースに至るまで、多くの仕様変更が行われました。
2015年 1.0版リリースされる。 正式リリースです。そこから6週間ごとに定期リリースが行われているみたいです。
導入事例
AWS Lambdaの仮想化システムFirecrackerにRustを利用
fastlyのWebAssemblyのコンパイラと実行環境のLucetに利用。Rebuild.fmの宮川さんも言ってた気がする
Cookpadの一部マイクロサービスに利用
終わりに
Rustについてまだスタートラインについたばかりですが、背景や実例をリサーチすると、Rustを学ぶ意義が感じられました。 今後もちょこちょこRustに関する投稿をしていきたいと思います。