
2026/11/07 20:11
Windows 11 のすべてのアプリが Electron を排除すべきであり、Discord がそれを証明しました
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Discord は「Discord Phoenix」という、現在 Windows 11搭載のLenovo ThinkPad(2024年製以降)、Linux、macOS、Windowsにてプライベートテスト中である新しいRust製デスクトップクライアントをローンチします。このアップデートは、ElectronからRustおよびGPUIへの大きなアーキテクチャ転換を表しており、GPUIとはZed社が開発したメモリをガベージコレクタなしで管理するGPUアクセラレーションされたUIフレームワークです。新クライアントは速度と効率性を優先しており、最新のハードウェアでの冷起動テストにおいて、Electronアプリが履歴メッセージと共に3秒間空白ウィンドウを表示するのと比べ、Phoenixは友人リストを読み込み、約1秒以内にフェードインします。具体的には、2つのアカウントを同時実行している場合、Phoenixは290.2MBのRAMを使用し、Electronアプリの通常のアイドル時の使用量である1〜2GBに比べて約70%少ないメモリ消費を実現しています。システムトレイでのプリロードや「起動中」アニメーションを採用しないRustおよびGPUIの利用により、体験は瞬時に開始されます。Discordは2018年以来モバイルアプリでRustを使用しており、現在はメインのデスクトップインターフェースにも応用されています。同様にモバイルアプリもReact Nativeから移行し、デスクトップ版とのコード共有を実現します。一方、WebアプリはロジックにWebAssembly (WASM) を採用します。アクティビティおよびYouTube埋め込みには引き続きシステムWebViewを使用します。更新の配信はMicrosoft StoreやWindowsのUpdate Orchestrationプラットフォームを通じてではなく手動で行われ、パブリックリリース前にアクセシビリティ、セキュリティ、安定性、パフォーマンスを重視しています。
本文
Discord、Rust ベースの新クライアントと既存の Electron クライアントを並走させる計画発表
Discord は、Windows 11 を搭載する ThinkPad 2 台で、現行のElectron クライアントと新しいRust ベースのクライアントが同時に動作することを確認しました。新クライアントは「Discord Phoenix」として紹介されています。
パフォーマンス比較
共同創業者兼 CTO のスターニスラフ・ビシュネフスキー氏の X 動画(230 万回視聴)で確認された結果です。両アプリとも**冷起動(完全終了からの起動)**状態での比較でした。
- 読み込み速度: Rust クライアントは、Electron アプリのローディング画面を表示する前に既に友達一覧を読み込んでいます。
- 素早さ: 新クライアントの方が著しく高速です。
メモリ効率性
タスクマネージャー上の表示では「Discord Phoenix」となり、2 アカウント同時ログイン時でも約 290.2MBのメモリしか使用しません。
- 省メモリ性能:
- Electron アプリと比較して約 70% も少ないメモリ使用量を実現しています。
- 通常の稼働時は 1GB 未満(自動リスタート閾値は 4GB)で動作していますが、アイドル状態の Electron アプリが 1〜2GB を消費するのに対し、劇的な改善が見られます。
起動時間とレスポンシブ性
| アプリケーション | 挙動と特徴 |
|---|---|
| Electron アプリ | * 初期表示: 約 3 秒間空白の暗いウィンドウを表示し、「ブラウザ専用アプリだった時代」への言及がある。 * 完了まで: インタフェースに到達するまでに約 5 秒かかる。 * 起動中: アップデートチェックを行い「開始中」画面が表示され、ユーザーからは 5〜10 秒の報告があります。 |
| Rust クライアント | * 初期表示: ダブルクリックから約 1.5 秒後、ウィンドウがフェードイン。 * 完了まで: インタフェース表示までに 1 秒以内。 * 友達一覧: インタフェース到達時、既に読み込み済み(Electron は一瞬「現在オンラインの友だちはいません」と表示)。 * 起動プロセス: アップデートモーダル画面が不要で、バックグラウンドで処理されるため極めて速くブートストラップされます。 |
技術的アーキテクチャ
Discord は Electron の代わりにGPUIを採用し、Tauri への移行は行っていません。
| 技術要素 | Discord における役割・詳細 |
|---|---|
| Rust | 新しいクライアントおよび共有アプリコードの開発言語(2018 年以来採用)。 |
| GPUI | Zed が提供する Rust UI フレームワーク。HTML を用いずに GPU で描画します。 |
| Electron | Chromium と Node.js のランタイム。現在は廃止対象の既存アプリ。 |
| Tauri | システムウェブビューを使用するフレームワーク。Discord は採用していない。 |
| React Native | モバイル用フレームワーク。Rust を介したコード共有を可能にするネイティブインタフェースへの移行予定。 |
技術選定の理由と戦略
- なぜ GPUI か?: HTML を使わず GPU で描画でき、Rust はガベージコレクタ不要でメモリ管理が可能という利点があります。
- クロスプラットフォーム対応:
- Windows 専用だがネイティブな WinUI の代わりに、Windows/macOS/Linux で動作している GPUI を採用しました。
- Discord は独自パッチを開発していますが、コミュニティへのアップストリーム化も可能性があります。
- Web テクノロジーの活用:
- YouTube 埋め込みやアクティビティにはシステムウェブビュー(Tauri 流)を使用します。
- ブラウザ版では HTML レンダリングを維持しつつ、ロジック部分でJavaScript を WebAssembly (WASM) に置き換える予定です。
- Web アプリ自体も Rust コードとコード共有が可能になります。
- モバイル戦略: スマートフォンではネイティブインタフェースを維持しつつ、デスクトップアプリとの間で Rust を介してコード共有を行います。
セキュリティと信頼性
Discord VP エンジニアリングのマーク・スミス氏は、アクセシビリティとセキュリティも同等に重要であると強調しています。
- トークン管理: ログイントークンをシステムのキーリング(Windows 10/11 の Credential Manager)に保持しています。
- テスト環境: ビシュネフスキー氏は、2024 年製以降の ThinkPad(Copilot キー搭載)を使用した安定したテスト結果を報告しました。
プライベートテストとリリース予定
マーケティングディレクターのライアン・K・ライニー氏は、完全公開リリース前に近々プライベートテストに入ることを発表しました。
- 目的: 安定性とセキュリティを確保するため、バグ修正に時間をかけ慎重に進めます。
- 現在進行: 公的なリリース日は未定ですが、Linux および内部での Mac 動作も確認済みです。
業界への影響と意義
Electron は過去 10 年間にわたりクロスプラットフォームアプリの標準でしたが、Discord は数百万ユーザーを抱えるチャットアプリであっても、バンドルされたブラウザエンジンを取り外してリデザインなしで実行できることを実証しました。
この動きは他のメッセージングプラットフォームにも大きな圧力をかけています。
- WhatsApp: ネイティブアプリ(アイドル時 100MB 未満)から WebView2 ラッパー(最大 1.2GB 使用)へと変化しました。
- Microsoft Teams: WebView2 を使用し、アイドル状態でも 963MB のメモリを消費していました。
業界背景
AI の需要による DRAM 不足や価格高騰を受け、メモリ使用量は業界全体の**「最優先事項」**となっています。マイクロソフトも Windows 11 のメモリ削減に取り組んでおり、かつてはメモリを大量に占有していたアプリケーションも大幅なリサイズ(ダイエット)を進めています。