プログラミング言語Rustはご存知でしょうか?または触ったことはあるでしょうか?
僕の周りにはあまりいませんが、QAサイトであるStack Overflowのアンケートによれば、
「最も愛されている言語」として5年連続で1位を獲得しているそうです。
僕はScala言語が好きで、趣味でも業務でも触ったことがありますが、そのScalaエンジニア界隈から`Rust`を触ってる、触りたい、と言う声が
ちらほら聞かれていたので、Scalaと同じく関数型プログラミングが可能で機能充実なハイスペックなんだろうなと思っていましたが、
趣味で触りたいというところまでには至っていませんでした。
しかし、先日近所の大型書店のコンピュターコーナーに行くと、Rust本が結構ズラッと並んでいることで気持ちに変化が起きました。
その書店のコンピューターコーナーはトレンドに敏感なのか最新の技術情報や傾向を把握してるんでしょうか、コーナーの模様替えやオススメ本がガラッと変わることがあります。
そこの一角にRustを推しているのを見て、ちょっと触りたくなり、プライベートで学習中です。オブジェクト指向プログラミングができ関数型言語でもあり、強力な抽象化ができ、nullを意識しない設計、traitやActorモデルを使った非同期処理のフレームワークがあったり、Scalaに通じるところもありますが、更に素敵な言語仕様もあります。
非同期フレームワークはScalaのAkka(本当に素晴らしいFW)の方が完成度は高いなあとは思います。
用途は、WEB開発だけでなくネットワークや組み込み、WebAssemblyやコマンドラインのツールなど豊富に採用できます。
どういった言語を習得してきたかにも依ります(第一言語がRustという人はほとんどいないと思うので)が、学習コストは高めです。
非常に高速でGCを取り入れず、メモリ管理を方システムと所有権モデルによって多言語よりも信頼性を高めることができます。
Node.jsからRustに切り替えるシステムなどもあるそうです。ですので、IoTのバックエンドとしてRustを採用が増えることもありそうですね。
まだ触り始めたばかりですが、どんどん触って面白いツールやシステムを作っていきたいと思います。
皆さんもいかがでしょうか?