なぜ「Rust」は「C」「C++」に代わる“期待の言語”なのか:RustとPythonを比較【第1回】
人気のプログラミング言語「Rust」と「Python」は、それぞれ異なる特徴や得意分野を持つ。両者を比較するに当たり、まずはRustの歴史や強み、機構といった概要を紹介する。
「Rust」と「Python」は、異なる得意分野を持つ人気のプログラミング言語だ。自社の開発プロジェクトに向いているのはどちらのプログラミング言語なのかを見極めるには、両者の特性を理解する必要がある。まずはRustについて、なぜ「C」および「C++」に代わるプログラミング言語として期待されているのかを押さえておこう。
「Rust」はなぜ期待の代替言語なのか
Rustは2006年、非営利組織Mozillaのグレードン・ホア氏が個人プロジェクトとして開発を始めた。CおよびC++に代わる、より安全なプログラミング言語の創出を目指している。2015年にはMozillaの支援の下で「Rust 1.0」が公開され、安全性や並行性、処理性能を重視するプログラミング言語として認知を得た。
2024年5月、米政府のセキュリティ政策機関ONCD(Office of the National Cyber Director)が公開したレポート「2024 Report on the Cybersecurity Posture of the United States」は、メモリの安全性を確保できるプログラミング言語を推奨し、Rustが注目を集めた。同年7月には、米国防高等研究計画局(DARPA)が、Cで書かれたソースコードをRustに自動変換する技術の実現を目指すプロジェクト「Translating All C to Rust」(TRACTOR)を発表した。
Rustの特徴である「所有権」は、ガベージコレクション(不要なデータを削除して空き容量を増やす機構)を使用せずに、メモリの安全性を確保する仕組みだ。「Fearless Concurrency」(恐れない並行)という設計思想によって、開発者が安全かつ効率的に並行処理を実装できる。ソースコードに変数の型を明示し、コンパイル(ソースコードを実行可能ファイルに変換する作業)時に整合性をチェックする「静的型付け」を採用しており、コンパイル時にエラーを検出して防止できる点も特徴だ。
コンピュータの基本的な機能や、ハードウェアを直接制御するプログラムを作成する「システムプログラミング」に不慣れな開発者にとって、Rustの習得は容易ではない。所有権や、所有権を持つデータへのアクセス権限を一時的に他のプログラムに与える「借用」、参照(データの場所を示す情報)が有効である期間「ライフタイム」といった概念の習得には、時間を要する可能性がある。
次回はなぜPythonが人気を集めているのかを解説する。
TechTarget発 エンジニア虎の巻
米国Informa TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.