CでもC++でもなく「Rust」を使いたくなる“なるほどの理由”GoとRustを比較する【第3回】

プログラミング言語「Rust」には、「C」「C++」といった“老舗言語”が抱える“ある課題”を解消する仕組みがある。それは何なのか。Rustの主な機能や特徴を解説する。

2023年04月21日 08時15分 公開
[Kerry DoyleTechTarget]

 独立性の高い小規模サービス「マイクロサービス」の開発において、プログラミング言語「Rust」は一定の地位を築いている。Rustにはどのような強みがあるのか。

CやC++じゃなく「Rust」を選ぶ理由はこれだ

 「C」や「C++」といったプログラミング言語では、開発者は手動でメモリを管理する必要があるが、Rustはその必要はない。これはプログラムによるメモリ内容の破壊を防ぐ「メモリ安全性」を確保する厳格な仕組みを、Rustのコンパイラが採用しているからだ。

 ソースコードの複雑さを排除して再利用性を高める「抽象化」が、プログラムの実行速度の低下につながることがある。この影響を抑える「ゼロコスト抽象化」は、Rustの主要機能の一つだ。プログラム実行時の負担軽減には、コンパイル時に関数の型を決定する「静的ディスパッチ」も役立つ。

 Rustは、関数を値として扱う「関数型プログラミング言語」が一般的に採用している機能を提供する。その代表例が「クロージャー」「イテレータ」だ。クロージャーは関数内で宣言された変数を関数外で使用可能な状態にする仕組み、イテレータはデータの集合にアクセスする仕組みを指す。

 その他にもRustは、ソースコード内の変数や式(値や演算子、変数などの組み合わせ)に対して型をチェックする「静的型付け」や、コンパイラが型を自動で推測する「型推論」といった機能を備える。Rustプログラムを、仮想的な命令セットアーキテクチャ(ISA)である「WebAssembly」が扱えるバイナリ形式にコンパイルすれば、主要なWebブラウザで実行可能になる。


 第4回は、Rustのさらなるメリットと主要な用途を紹介する。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

ITmedia マーケティング新着記事

news061.png

高齢男性はレジ待ちが苦手、女性は待たないためにアプリを活用――アイリッジ調査
実店舗を持つ企業が「アプリでどのようなユーザー体験を提供すべきか」を考えるヒントが...

news193.jpg

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...

news047.png

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...