はじめに
私が今一番好きな言語は Rust です。
Rust は書いていて楽しいですし、学びも多い言語だと感じます。
そこで今回は私が特に好きな Rust の特徴を紹介しつつ、Rust の良さを伝えていきたいと思います。
今回は 4 回目でおそらく最後です。
今までカテゴリ分けして紹介してきましたが、今回はその他の特徴を雑に紹介していきます!
高速
言わずもがな、Rust の特徴です。C,C++に並ぶ速度を持っているとされています。
そのため、とりあえず Rust を使っておけば言語による速度の問題に引っかかることはほとんどないといって良いでしょう。
そのため、自信を持って Rust を使って開発を進めることができるのではないかと思います。
モダンなパラダイムを取り入れている
Rust は他言語で取り入れられている機能を積極的に取り入れています。
その中でも FP(関数型プログラミング)チックなところが私としてはとても好きです。
以下はその一例です。
- 関数が第一級市民
- パターンマッチ
- Result, Option 型
- map, filter, fold など
- if 式
- if let, let else
- ジェネリクス
- トレイト境界
テストが本番コードと同じファイルに書ける
これは好みが別れるかもしれませんが、私はとても好きです。
コードと同じファイルにテストを書くことができるので、すぐにテストを書くことができますし、逆にコードを読む時も近くにテストコードがあるのはとても便利です。
また、Rust は構造体のフィールドの可視性がプライベートの場合、その構造体以外にはアクセスできない、というわけではなく、同じモジュール内(mod キーワードで囲む範囲。大体ファイル単位になることが多い(と思う))であればアクセスできるという特徴があります。
そのため、テストコードで構造体のフィールドにアクセスすることができるのです。これも意見が分かれるところではありますが、やはりプライベートなフィールドにアクセスしたいケースはいつかは来ると思います。
テストコードが同じファイルにかけるかつ、プライベートなフィールドにアクセスできるというのは、テストを書く際に便利になってくることがあるのではないかと思います。
コンパイラが優しい
Rust はコンパイラがとても優しいです。エラーメッセージがとてもわかりやすいですし、エラーが出た時にはどこが問題なのかがわかりやすいです。
ですので、コンパイラとペアプロしている気分にもなれます。
最近ではコンパイラ駆動開発という言葉もあるらしく、まずはコンパイラに怒られてからそのコンパイラを通していくという開発スタイルもあるようです。
Rust はコンパイラが優しいので、そのスタイルも取り入れやすいのかもしれません。
低レイヤを意識することになる → 学びが多い
Rust はメモリ配置やスレッドセーフなど、低レイヤの知識が必要になることがあります。
そのため、私は最初の頃&str
とString
の違いがわからなかったり、なぜclone
がよくないのかなどがわからなかったです。
ただ、Rust とともに低レイヤの知識も少しずつ学んでいったことで、とてもクリアになり、メモリやパフォーマンスなどについても考えることができるようになりました。
Rust がなければなかなかこのレイヤを学ぶ機会はなかったかもしれません。
Rust は低レイヤを意識することになるので、初学者が学べば多くのことを学ぶことができると思います。
終わりに
Rust はとても良い言語です!書いていて学びがあり、何より楽しいです!
これからも Rust を使い続けていきたいと思います。
ここまで読んでいただきありがとうございました!