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

news047.jpg

SASのCMOが語る マーケティング部門が社内の生成AI活用のけん引役に適している理由
データとアナリティクスの世界で半世紀近くにわたり知見を培ってきたSAS。同社のCMOに、...

news159.jpg

SALES ROBOTICSが「カスタマーサクセス支援サービス」を提供
SALES ROBOTICSは、カスタマーサクセスを実現する新サービスの提供を開始した。

news139.jpg

「Fortnite」を活用  朝日広告社がメタバース空間制作サービスとマーケティング支援を開始
朝日広告社は、人気ゲーム「Fortnite」に新たなゲームメタバース空間を公開した。また、...