Rust が未来を変える! プログラミングの新常識とは?
YouTube動画:
https://youtu.be/M9GsYdYJ1pU
プログラミング言語 Rust
スマートフォンのアプリ、ウェブサイト、ゲーム、電子マネーはプログラムで動いている。プログラムとは、コンピュータへの指示を順番に書いたものである。この指示を書くための言葉がプログラミング言語であり、Rustはその一つである。
Rustの特徴
プログラミング言語には多くの種類があり、それぞれに得意な分野がある。Rustの特徴は、安全性、速度、信頼性である。特に、メモリ管理に関するプログラムの誤りを、動かす前に検出することが大きな特徴である。
プログラムの誤りが引き起こす問題プログラムに誤りがあると、途中で止まる、予期しない動作をする、悪意のある攻撃に利用される、といった問題が発生する。Microsoftは2019年、同社製品のセキュリティ上の欠陥の約70%がメモリ管理の誤りに起因していたと発表した。
従来のプログラミング
- コード作成
- 実行中に誤りが発覚
- 修正
Rust
- コード作成
- 実行前に誤りを検出
- 安全に実行
Rustは、メモリ管理に関する誤りを、プログラムを動かす前に検出する。誤りが検出されたプログラムは実行できない。Rustで書かれたプログラムの実行速度は、CやC++と同等である。
コンピュータのメモリ管理
メモリとは?
メモリとは、コンピュータの一時的な「作業机」である。プログラムが動くとき、データはメモリに保管される。
課題:「片付け」の管理
メモリ上のデータを「いつ、誰が片付けるか」を正しく管理する必要がある。
- 片付けを忘れる → データ(ゴミ)が溜まり続ける
- まだ使っているデータを片付ける → プログラムが正常に動作しなくなる
所有権
Rustがメモリ管理の誤りを事前に検出できる理由の一つは「所有権」という仕組みにある。
Rustの解決策:「所有権」
Rustでは、すべてのデータに「所有者」が一人だけ存在する。「誰がデータを持つか」を明確にするルールである。所有者がいなくなると、データは自動的に片付けられる。この仕組みで、誤りを事前に防ぐ。
プログラム例
let s1 = String::from("こんにちは"); // s1が所有者になる
let s2 = s1; // 所有権がs2に移る
// s1はもう使えない
s1が「こんにちは」の所有者になる。s2 = s1と書くと、所有権がs2に移り、s1は使えなくなる。移動後にs1を使おうとすると、Rustは誤りとして検出し、プログラムを実行しない。
この規則により、「誰が片付けるか」が常に明確になる。通常のRustコードでは、メモリ管理の誤りは発生しない。
社会での採用
Rustは大手企業での採用が進み、多くのアプリやシステムで活躍している。
Discordでの採用事例
Discordは、通話機能付きコミュニケーションサービスである。Discordの技術チームは2020年、あるサービスをGo言語からRustに書き換えたことを公表した。書き換えにより、性能が向上し、遅延の問題が解消されたと報告している。
Linuxでの採用
Linuxは、サーバーやスマートフォンの土台となるシステムである。2025年12月、Linux開発者はRustを正式な開発言語として認めることを決定した。
まとめ
- Rustは、メモリ管理に関するプログラムの誤りを動かす前に検出する言語である
- 所有権という仕組みがその基盤にある
- 実行速度はCやC++と同等である
- 採用実績:Linux、Discord
Rustの所有権システムは、他の言語にはない考え方であり、習得には時間がかかる。
Rustをインストールする場合: https://rustup.rs