/note/tech

Microsoft building team to eliminate C and C++, translate code to Rust using AI...

要約:

■ 1. 記事公開後の訂正

  • この記事が注目を集めた後MicrosoftはAIを使ってWindowsを書き直すことはないと述べた
  • Microsoft Distinguished EngineerのGalen HuntがLinkedInで説明を追加:
    • WindowsはAIを使ってRustで書き直されているわけではない
    • チームの作業は言語間移行を可能にする技術を構築する研究プロジェクト

■ 2. Microsoftの2030年目標

  • Microsoftは2030年までにMicrosoftからCとC++のすべての行を排除することに専念するチームを構築している
  • これはWindows 11に影響を与える可能性がある
  • CはWindows APIを含むWindowsカーネルと低レベルコンポーネントの大部分を動かしている
  • C++はネイティブWindowsアプリの構築に使用されている

■ 3. MicrosoftのRustへの取り組み

  • MicrosoftのRustへの愛情は新しいものではない
  • Rustはプログラミング言語でありWebView2のようなフレームワークと混同してはならない
  • RustはCよりもはるかに安全でありCはカーネルを含むWindowsのネイティブコードのほとんどを動かしている

■ 4. 求人情報の詳細

  • Galen Huntは過去30年間Microsoftに在籍し現在Distinguished Engineer
  • 彼のチームはIC5 Principal Software Engineerの募集をしている
  • Windows LatestがMicrosoftのキャリアサイトとLinkedIn投稿で興味深い詳細を発見
  • 会社のトップレベルエンジニアの発言:
    • 目標は2030年までにMicrosoftからCとC++のすべての行を排除すること
    • 戦略はAIとアルゴリズムを組み合わせてMicrosoftの最大規模のコードベースを書き直すこと

■ 5. AIによるコード生成の目標

  • Windowsが主にCとC++で書かれていることを考えるとすべてが妄想のように聞こえるかもしれない
  • しかしMicrosoftはエンジニアがAIを使って毎月100万行以上のコードを書くことができればすべてが可能だと主張
  • North Starは1人のエンジニアが1ヶ月で100万行のコード
  • 1人のエンジニアと毎月100万行のコードでMicrosoftからCとC++を排除できる
  • MicrosoftはIC5 Principal Software EngineerとしてMicrosoftの2030年までにCとC++を排除する計画に参加する開発者を積極的に採用している

■ 6. Satya Nadellaの発言との関連

  • この声明はMicrosoftのSatya Nadellaによる以前の発言に続くもの
  • Nadellaは以前会社のコードの最大30%がAIによって書かれておりこれにはWindowsも含まれる可能性が高いと述べた

■ 7. コード処理インフラストラクチャ

  • Microsoftは強力なコード処理インフラストラクチャを構築した
  • これはおそらくMicrosoftがCとC++コードとRustでAIモデルをトレーニングしたことを意味する
  • このインフラストラクチャはAIエージェントを使用して大規模にコード修正を行う
  • Microsoftはこのインフラストラクチャによって会社の最大規模のCおよびC++システムのほとんどをRustに進化させ変換できると確信している
  • チームはMicrosoft CoreAIのEngHorizons組織内のFuture of Scalable Software Engineeringグループの一部

■ 8. RustとAIアプローチへの懸念

  • RustはCやC++よりも安全でおそらくより良い選択肢
  • しかしAIエージェントがコードベースを変換することを信頼できるか疑問
  • AIは構文を変換できるはずだがコードの意図では失敗する可能性がある
  • これがタスクマネージャーのような基本機能を壊したりBitLocker回復画面を引き起こすWindowsアップデートがあった理由を説明している可能性

■ 9. RustによるWindowsセキュリティ強化

  • RustはWindowsをより安全にするMicrosoftの取り組みの一部
  • WebView2がフロントエンドを担当
  • Microsoftは約6年間CとC++よりもRustを提唱してきた
  • 当時会社が実際にできるだけ早くCとC++を放棄する計画を立てていたことは知らなかった
  • 2019年のブログ投稿でMicrosoftの主張:
    • RustをCとC++から分けるものはその強力な安全保証
    • unsafeキーワードの使用を通じて明示的にオプトアウトしない限りRustは完全にメモリセーフ

■ 10. Rust開発環境の整備

  • Microsoftは最近Windows APIをRust開発者向けに準備した
  • GitHubにwindows-rsというリポジトリがある:
    • これはWindows APIのRustプロジェクションでありRustコードがC++やC#と同じ方法でWin32COMWinRTを呼び出すことができる
  • Microsoftはまた別にRustドライバー開発の取り組みがある:
    • GitHubのwindows-drivers-rsは会社がアプリを超えてRustを探求していることを示している
  • このRust最適化は単発のプロジェクトや派手なオープンソース作業ではなく会社は本当にRustに真剣

■ 11. ネイティブ言語置き換えの課題

  • これまでのところC++WinUIXAMLなどのネイティブ言語を置き換えようとするMicrosoftの試みは消費者や企業でもうまくいっていない
  • 実際Microsoftはより広範な問題に貢献しており最も人気のあるWindowsアプリはDiscordや会社自身のTeamsなどRAMを消費するモンスター
  • Windows UIは徐々にWebベースのコンポーネントに移行している
  • アプリだけでなくスタートメニュー内にReactがある
  • さらに通知センター内のカレンダーのアジェンダビュー用にWebView2を取得している
  • これは通知センターを開くと新しいEdge/WebView2インスタンスがトリガーされることを意味する

■ 12. 今後の展望

  • これらのエージェントプログラマーがWindowsや他のMicrosoft製品全体でCとC++コードをRustや他の言語にどれだけうまく変換するかは時間が経てば分かる