9月18日、pbxscience.comが「Microsoft Designates Rust as a Tier 1 Language, Placing It Alongside C++, C#, and TypeScript」と題した記事を公開した。MicrosoftがRustを社内開発の「Tier 1言語」に正式指定し、C++・C#・TypeScriptと同格の扱いとする方針を発表した内容だ。
この発表の一次情報は、Rust Foundationに投稿されたMicrosoft DevDivエンジニアのVictor Ciura氏による公式ブログ記事に基づく。単なる言語サポートの宣言に留まらず、C++と同一のコンパイラバックエンドを共有する新技術「rustc_codegen_utc」がすでに100以上の内部リポジトリで本番稼働しているという実態が明らかになった点が、今回の発表の本質だ。
Tier 1指定の中身:看板ではなく実質的な投資
Tier 1とは、Microsoftが定める社内言語サポートの最上位区分だ。単なる名誉称号ではなく、「専任チームの配置」「正式なQAプロセスの適用」「社内インフラとの深い統合」を伴う実質的なコミットメントを意味する。これまでWindowsプラットフォーム向けのRustサポートはコミュニティの貢献に依存する部分が大きかったが、今後はMicrosoftが直接資金と人員を投じる構造に転換する。
Ciura氏の投稿によると、今回のTier 1指定に伴う具体的な投資内容は以下のとおりだ。
- ローカル開発環境から本番デプロイまでの一貫したツールチェーン整備
- 専任エンジニアリングチームによるツーリング開発
- 正式なQAプロセスの適用
- Microsoftの内部プラットフォームとの深い統合
- Security Development Lifecycle(SDL) への準拠義務(他のMicrosoft製品と同一基準)
SDLはMicrosoftが2004年から全製品に適用している脆弱性低減のための開発プロセスだ。これがRustプロジェクトにも正式に義務付けられることで、セキュリティ品質の担保が社内で制度的に保証される。
技術的核心:C++と同じコード生成基盤を共有するrustc_codegen_utc
今回の発表で最も実質的な意味を持つのが、新しいコンパイラバックエンド rustc_codegen_utc だ。
Rustのコンパイラ(rustc)はコードを機械語に変換する際に「バックエンド」と呼ばれるコード生成器を使用する。現在はLLVM・GCC・Craneliftが選択肢として存在するが、rustc_codegen_utcはこれらと同じ位置づけで、RustをMicrosoftの独自コンパイラ基盤 UTC(Universal Type Compiler) に接続する。UTCはMSVC(Microsoft Visual C++)のコード生成を担うバックエンドそのものだ。
つまり、RustとC++が同じコード生成プラットフォームを共有する構造になる。これによって得られる利点は以下のとおりだ。
- Windows ABI(Application Binary Interface:バイナリレベルの互換性規約)との高い互換性
- バイナリ強化・セキュリティ機能の共有
- ホットパッチ対応を含むポストリンク解析・サービシング
- Rust/C++混在プロジェクトでの相互運用性向上
- クロス言語インライン化とSPGO(Sample Profile Guided Optimization:サンプルプロファイルガイド最適化)を含む最適化
- 両言語をまたいだデバッグ・クラッシュダンプ解析の統一
- プロファイリング・診断・コードカバレッジツールの共通化
MSVCのツールチェーンは数十年かけて磨かれてきた。Rust用に同等の機能を一から作り直すのではなく、既存の投資をRustに拡張するアプローチだ。rustc_codegen_utcはRust 1.90時点でセルフホスト(自己ビルド)に対応し、2026年初頭に本番利用可能な水準に達した。現在はMicrosoftの100以上の内部リポジトリで使用されており、その数は週単位で増加中だという。
なぜ今なのか:メモリ安全性問題への本気の対応
Microsoftの経営幹部はこれまでも、WindowsのCVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)の大部分がメモリ安全性の問題に起因すると繰り返し指摘してきた。Rustはガベージコレクタを持たずに所有権システムでメモリ安全性を保証する言語であり、C++の代替として有力視されてきた。
Microsoftはすでに、Win32kカーネルコンポーネントやフォント解析コードにRustを採用しているほか、ChromiumプロジェクトのRustベース画像デコーダではGoogleと協力している実績がある。Tier 1指定により、ドライバ・パーサ・ネットワーク関連コードといったセキュリティ上の重要性が高いコンポーネントへRustを採用する際の障壁が下がる。カスタムツールサポートを自前で構築する必要がなくなるためだ。
C++がMicrosoftの既存コードベースの大半を占めている状況は当面変わらない。しかし共通のコンパイラバックエンドが整備されたことで、Rust/C++混在構成のシステムでもデバッグ・最適化・ツーリングを一貫して扱えるようになる。既存の膨大なC++資産を抱えながら段階的にRustへ移行していく現実的なパスが、技術的に整いつつある。
詳細はMicrosoft Designates Rust as a Tier 1 Language, Placing It Alongside C++, C#, and TypeScriptを参照していただきたい。