グーグルにおける IDE の歴史

2026/05/09 20:14

グーグルにおける IDE の歴史

RSS: https://news.ycombinator.com/rss

要約

要約:

Google は、デスクトップ型エディタと初期段階の独自 Web エディタ(「Cider」)から構成されていた分断されたエコシステムから移行し、単一の成熟した Web ベースのプラットフォームである Cider V に統合することで、膨大なソフトウェア開発事業を一元化しました。この重要な転換は、2020 年頃、VSCode をフロントエンドとして採用するピボットにより開始され、各内部ツールに対して独自のカスタム統合が必要という長年のツールの課題に対処しました。当初のリーダーシップが「不満」を引き起こすリスクや、エディタへの宗教的な熱狂を理由に単一エディタへの強制を推奨しなかったことに対し、Google は Cider V のバックエンドサーバーアーキテクチャを利用して重いインデックス化タスクを外注することに成功し、規模拡大における以前の限界を克服しました。導入の拡大は緩やかでした;元々の Cider は技術作家には支持されていましたが、Java 開発者からは懐疑的な態度が示され、VSCode ベースのアプローチにより馴染みのある体験を提供するまで、その姿勢を変えませんでした。2023 年までに Cider V は主要なコードベースの 80% をカバーし、分散した環境を標準プラットフォームに置き換えるとともに、クロスチーム拡張機能や自動コードレビュー、スマートペーストといった高度な AI 機能をサポートしています。

本文

以前、Google の主要なコードベースが、拡張性とスケーラビリティを確保するために厳格なツールチェーンや規約を採用してきたことについて触れました。しかし長らく、一つの顕著な例外がありました—that は「開発者環境」つまり「エディタ/IDE」の選択です。

背景: 筆者は Google で 2011 年から 2024 年まで勤務しました。一部の内容は概算であり、後に報告があれば更新します。本記事は Google の主要モノリポである google3 に焦点を当てています。

分断されたエコシステム

多くの企業と同様に、Google のエンジニアも自分好みの IDE を自由に選択することができました。その結果、環境の分断が進行しました。2011 年、最 senior なエンジニアの一部に「すべての Google エンジニア向けに優れた統一された IDE は可能だろうか?」という問いかけがありました。答えは基本的に「不可能」というものでした。その中で Jeff Dean は次のように述べています。

「一団の開発者に共通のエディタへの合意を取り付けることは、不幸を招く道です。何事が重要で、どのシステムがどのような長所・短所を持ちうるかについては、人によって意見や価値判断が異なります。結果的に、それほど大きな違いにはなりません。」

この考え方は長らく支配的な見解でした。「同僚が使っている IDE はどうでもいい。重要なのはコードの質さえ保証されればよい」という発想です。しかし私は開発ツール領域で 12 年間を過ごしており、時にこの問題について疑問を抱きました。

企業生産性の観点から見ると、各エンジニアがエディタの設定に時間を使いすぎるのは望ましくありません。実際に使われている IDE は異なりましたが、有用な統合機能は結局どこでも再実装する必要がありました:Bazel サポート、Starlark ツール、コードフォーマッタ、コード検索の統合など。Google の社内文化はこれを管理可能な水準に保っていました。エンジニアらは自発的にツールプロジェクトを立ち上げることが多く、他の人が共有コードベースを通じてそれを見つけ、貢献することも一般的でした(20% タイムやピアボーナスを通じて)。こうした貢献が重要なプロジェクトに至っては、正式なスタッフ配置へと発展しました。例えば、IntelliJ インテグレーションを専門とするチームが 2015 年左右に設立されました。

なぜこのように大規模な専用チームが必要なのかと疑問を持つ人もいるかもしれません。当初から IDE が十分でなかったのでしょうか?理由の一つは、Google が独自ツールを多数用意しており、それらをすっきりとした IDE インテグレーションで使える場合、エンジニアの生産性が向上することにあります。また、もう一つの要因はモノリポの巨大さによるものです。伝統的な IDE は、ソースコード、ビルドメタデータ、インデックス化、解析などすべてをローカルで行うことを前提として設計されていますが、Google 規模ではこの前提が成立しなくなってきました。

クラウド IDE

2013 年頃(正確な時期は不明ですが)、予想外の展開がありました。一部の人が Web ベースのエディタ「Cider」を開発をはじめました。「Cloud IDE」というコンセプトに由来する名称ですが、末尾の「r」を加えることで記憶に残りやすい名前にしたといいます。

ほぼすべてのツールが Web ベースであり、コードレビューや Code Search によるコードベースナビゲーションもブラウザで行われる組織であり、Chromebook を採用している環境では、ファイルをブラウザから素早く編集できる手段があるのは理にかなっています。

しかし驚いたのは、Cider が次第に多くのエンジニアの間で普及し始めたという点です。最初はテクニカルライターを中心に使われており、バージョン管理を気にせず Markdown ファイルを編集したいというニーズを満たすものでした。ミス入力への修正も非常に効率よく、「プルリクエストを送信」のボタン一つで済み、承認後自動マージするオプションもありました。当時は GitHub でも同様の機能がなかったため、新鮮な印象でした。

時間の経過とともに、開発者向け機能も順次追加されていきました。転換点となったのは、言語サーバープロトコル(LSP)を介したコード補完機能を導入してからでした。

Cider は軽量クライアントとして、従来の IDE よりもはるかに速く起動します。「魔法」の部分はバックエンドで行われ、全体コードベースをインデックス化した上で、ユーザーがページを開いた時点で必要なデータが準備されます。

コードインテリジェンスを実現するには、各識別子をその型や参照関係に結びつける必要があります。これにより巨大な言語グラフが形成され、コミットごとに更新する必要があります。実際には毎秒多数のコミットが来るためです。また、IDE には履歴データへのアクセスも必要です。例えば私がプロジェクトを作業中、同僚がコードをマージしても、すぐにその変更を取り入れたいわけではありません。そのためエディタは、自分の最後の同期日に対応するグラフを使う必要があります(もちろんローカルの変更を上書きする仕組みが必要です)。

このような機能を含んだ Cider の採用は、特定のユーザー層でさらに高まりました。例えば、Cider を Java 開発者よりも Go 開発者に切り替えるほうが圧倒的に容易でした(Java 開発者はより高度なエディタを期待するため)。「十億行のファイル間でも検索や参照が即座にできる」という喜びは本物です。

Cider V のスクリーンショット(2022 年)

Cider V:VSCode をフロントエンドとして採用

バックエンドへの投資はその価値を十分に証明しました。Google 固有の課題を解決しており、代替案がなかったからです。しかしフロントエンド自体は比較的に制限されていた:速い修正には良かったものの、真の IDE と競合できませんでした。

方針転換が起こしたのは 2020 年、私が技術リーダーとしてチームに加入した時です。その時点で Cider は社内での主要エディタでしたので、その将来性に関する議論が起き、最終的に VSCode のフロントエンドを Cider に採用することが決定しました。これは自然な選択でした。VSCode はすでに IDE 市場で優勢であり、言語非依存、拡張可能、かつ Web 向けに設計されていました。

VSCode フロントエンドへの移行により、成熟したエディタ、豊富な拡張機能エコシステム、そして長年の累積機能を継承できました。Cider の多くが要望されていた機能も、すでに VSCode で解決されていました。より重要なのは、拡張機能システムによって全社のチームが参入可能になり、Cider チーム自体をクリティカルパスから外せた点です。

フロントエンドチームに十数名のエンジニアが関わっても、Cider を完全に代替する製品をつくるのに数年かかりました。2021 年にオープンベータ版では 5,000 人のエンジニアが使いましたが、まだ多数の統合作業や体験の微調整が残されていました。バージョン管理サポート、コードレビューツールの統合、Cider バックエンドを活用したコード補完・リファクタリング機能の実装、拡張機能のパッケージングと更新方法の再設計など、多くの課題がありました。

Cider エディタに愛着を持ち、細かい挙動まで変更を望むユーザーも多くいました。わずかなワークフローの変更やボタンクリック数の増加などが、あるユーザーにとっては採用の障壁になる可能性があります。そのため、 polishing 段階では数ヶ月にわたる反復が必要でした。例えば配色scheme の一つが話題になったりもして、論争を巻き起こすほどでした。Joshua Bloch は 2011 年の時点でこう語っています。

「プログラミング言語よりテキストエディタや IDE が宗教的熱狂を生み出すものがあるとしたら、それは何か?」

コードレビュー統合のためのデザイン探索(2022 年)

VSCode エンジニアとの相互作用や、私たちが VS コードへの変更を還元した話なども書ける内容ですが、本稿は既に長くなっています。いずれまた詳しく書きたいと思います。ここでは「ローカルフォークを維持し、月に一度更新し、可能な限りローカルハックを減らして上流コードと揃えるよう努めた」とおきましょう。

統一された IDE

記事冒頭で「Googlers 全員向けの統一 IDE」について問いましたが、完全には実現はしませんでした。しかし 2023 年までに、主要 Google コードベースの開発の 80% は Cider V で行われており(その比率はさらに上昇しています)。

各 IDE に優劣がありますが、Cider は社内ツールとの統合が極めて優れていたため多くのユーザーに選ばれました。優れたバージョン管理サポートや、レビューコメントがインラインで表示されるコードレビュー統合などが特筆されます。

私が最も刺激的だったのは、大部分のユーザーが同じツールを使うという副作用です。これにより、ツールへのリソース投資の効果が相乗的に高まり(各変更の影響範囲が広がるため)できました。私は IDE 拡張可能性を担う技術リーダーでしたところ、やがて全社のチームから連絡が来るようになり、各自がワークフローを改善する独自の拡張機能を開発し始めました。2 年後には約 100 の社内拡張機能が開発されていました。これにより以前は不可能だった多数のシナリオを実現することができました。

2023 年、経営側がすべてのチームに AI 機能をさらに深く統合するように促しました。これにより「機械学習を使ったコードレビューコメントの解決」や「コンテキストに合わせた貼り付け内容の調整(Smart Paste)」といった画期的な機能が実現されました。もちろん、AI によるコード補完も含まれます。

IDE にますます多くの AI 機能が集積してくると、単一で拡張可能なプラットフォームを持つことの優位性がより明白になっていきます。もちろん、これは非常にコストが高く、少数の企業しかこれを実現できるとは言えません。しかし、「標準(強制ではない)的な IDE への移行」が大きな影響を与えたことは間違いありません。

結局のところ、標準化したツールチェーンこそがレバレッジを生みます。

コメント欄は閉鎖していますが、フィードバックを歓迎します。Hacker News や Mastodon で議論することもできます。この種のコンテンツがお好きであれば、RSS を通じて購読いただけます。メール通知を受けたい場合は、Feedrabbit などのサードパーティツールをご利用ください。

同じ日のほかのニュース

一覧に戻る →

2026/05/11 5:54

Linux のゲーム処理が高速化しているのは、Windows API が次第に Linux カーネル機能へと統合されてきたからである。

## Japanese Translation: 2026 年 3 月、Steam ライニングでの Linux ゲーム利用は史上初の重要な人口統計学的閾値を超え、Steam ユーザーベースの 5%に達した。同時に、NTSYNC ドライバーの導入により主要な技術的マイルストーンを達成した。CodeWeavers とオープンソースコミュニティが共同開発した NTSYNC は、Linux カーネルに直接統合され、以前は Wine/Proton のワークアラウンド(例:fsync)によってエミュレートされていた Windows 協調ツールに対して、ネイティブの実装を提供する。 Valve のエンジニアである Pierre-Loup Griffais が推奨する通り、2026 年 3 月の更新済み Steam Deck においてデフォルトでロードされるこのドライバーは、デッドロックやフイッチなど長年存在したエッジケースの問題を解決する。ベンチマーク結果によると、NTSYNC は顕著なパフォーマンス向上をもたらしており、未変更のアップストリーム Wine と比較するとフレームレートの最大 200%の増加を実現している。ただし、Proton(すでに fsync を含む)に対する利得はより modest(小規模)である。Microsoft が昨年 10 月に Windows 10 の公式サポートを終了したという背景において、この進展は技術的障壁を軽減し、Bazzite、CachyOS、Fedora、Ubuntu など複数のディストリビューションが新しいカーネルバージョンを採用するよう促すことで、Linux エコシステムを強化している。これは、外部パッチへの依存から、Windows 互換性を Linux コアに直接組み込むという戦略への変換をもたらした。

2026/05/13 23:45

地域レベル(自治体)向けの無料ドメイン「*.city.state.us」の設定手順(2025 年)

## Japanese Translation: 米国の居住者および組織は、特定の町が .us 下のサブドメインを委任した場合に、無料で地域固有のドメイン名(例:frederick.seattle.wa.us)を検索・登録することが可能です。対象者は米国市民または永住者、米国で設立された団体、あるいは米国において実際の事業活動および合法な活動を行う組織に限られます。地域固有ドメインは 1992 年に作成され、以降も政府との契約下で運用されていますが、インフラの變更により多くの連絡先リストが陳腐化しています(例:NW Nexus が 2009 年に NuOz Corporation に再編されたこと等)。委任されていないドメインは NeuStar が管理しており、2002 年のポリシーに従い現地政府のみを対象としています。特定の地域サブドメインが存在しない場合、gen.your-state.us 下(例:next.gen.oh.us)で一般的な独立系エンティティとして登録できます。登録には「Interim .US Domain Template v2.0」を使用し、申請者は組織情報を自身の詳細で記入し、メールを Admin/Technical/Zone コンタクトとして記載しても構いません。登録時に提供される個人アドレスは WHOIS 結果に表示されず、表示されるのはレジストラー情報のみです。承認には手動レビューが必要であり、所要時間は数日から数週間かかります。承認後、申請者はレジストラーが提供する無料のネームサーバーを介して DNS レコードを追加することで構成します(例:Amazon Lightsail の場合)。Lightsail を使用するには、AWS アカウントを作成し、「Domains & DNS」から「Create DNS zone」をクリックし、「Use a domain from another registrar」を選択し、提示されたネームサーバーアドレスを記録します。これらのサーバーの IP アドレスは、オンライン DNS ツールまたは `dig` コマンドを使用して解析できます。最後に、Lightsail(または同等のサービス)で DNS レコードを追加し、GitHub Pages や他のサーバーなどへのポインタを設定することで、有料ホスティング費用なしに真正な地理的 소유権を確保できます。申請者は、企業の構造を反映していない可能性があるレガシーの連絡先データに依存する際に注意する必要があります。

2026/05/14 5:12

プリンストン大学の面接試験における対面実施については、7 月 1 日より試験監督者の配置が開始されます。

## Japanese Translation: プリンスストン大学は、7 月 1 日より実地監査による試験運営を義務化する歴史的な方針転換を可決し、133 年間にわたり続いた無監督試験という伝統に終止符を打ちました。この決定は、生成 AI に起因する不正競争リスクの高まりと低い同級生からの通報率への対応であり、データは上級生のうち 0.4% がしかるべき行動をとらず(29.9% が不正行為を行ったことを自認しており、44.6% は未報告の不祥事を認識しているにもかかわらず)、ドキシング(個人情報を公開すること)や恥を誘うことへの恐怖が通報意欲の抑制につながったことを示しています。この方針は、大学における規則および手続きにおいて何十年にもわたり監督業務が明記された禁止事項であったにも拘らず、僅差で可決されました。新しい計画では、教官が試験室において証人として役割を担い、学術規範違反の疑いを記録する際に学生の活動に干渉することなく対応します。また、監査官は学生運営する名誉委員会へ報告書を提出し、他の証人和同等の基準の下で宣誓陳述を行うことができます。実施前に、監査員と学生との比率や監視ガイドラインなどの詳細を最終確定させます。一部の学生が、1893 年に制定された学術規範契約における信頼関係への懸念から変化に反対していますが、行政当局および教員団体(大学生担当学長オフィスおよび McGraw テイチング・アンド・ラーニングセンターを含む)は、11 月の指令で個別試験、小グループ試験、補充試験、また旅行中の試験や障害者向け配慮の試験も含まれる必要ある適応であると考えます。教員は以前関連委員会から全会一致で承認された後、教官による監督を要請する提案を僅差で可決しました。名誉委員会理事兼学長 NADIA MAKUC('26)は、生成 AI という新たな制約やケース数の増加により、証人として追加の監査員を導入する時期が到来したと指摘しています。この進化により、証人は違反行為をより効果的に記録できる一方で、核となる学術規範の価値を維持でき、AI 時代において厳格な学術誠実性の執行とプリンスストンの名誉制度の間でバランスを取る新たな先例を設定します。