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

news083.jpg

マーケターは「脱TikTok」を決断すべき? 鍵を握るのはトランプ氏
米国におけるTikTok売却または禁止が議会で可決されたことを受け、このプラットフォーム...

news034.png

「ECプラットフォーム」売れ筋TOP10(2024年7月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。

news002.jpg

ロシアのbotファームがXを標的に虚偽情報を拡散 どうしてこうなった?
ロシアによる生成AIとソーシャルメディアを使った世論操作が活発化している。標的とされ...