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 マーケティング新着記事

news058.jpg

Z世代が旅に求める「令和的非日常」とは?
JTBコミュニケーションデザインと伊藤忠ファッションシステムが、Z世代の旅に関する意識...

news094.jpg

電通が「AI×クリエイティブ」の強みを生かしたビジネスコンサルティングサービスを提供開始
電通は「AI×クリエイティブ」で企業の事業やサービスの開発を支援する新サービス「AIQQQ...

news053.jpg

「docomo Ad Network」 高LTVユーザーのみに広告配信ができる顧客セグメントを追加
D2Cは顧客生涯価値が高くなることが見込まれるセグメントを抽出し、新たなセグメント情報...