世界を動かす技術を、日本語で。

IE6を殺す陰謀 (2019)

概要

  • 10年前、YouTubeのWeb開発チームが IE6サポート終了 を画策
  • IE6 のバグや非互換性に悩まされ続けた日々
  • サポート終了を“ 脅すバナー ”でユーザーに通知
  • OldTuber権限 を使い、秘密裏に本番環境へ導入
  • 影響はYouTube内外に波及し、Google全体の流れを変化

YouTubeがIE6を“殺した”陰謀

  • 10年前、 YouTubeのWeb開発チーム がIE6のサポート終了を画策
  • きっかけはIE6特有の 致命的なバグや非互換性 への対応疲弊
  • 空のsrc属性を持つ<img>タグや、未対応要素へのCSS指定で サーバー障害やブラウザクラッシュ が頻発
  • 開発スプリントごとに 1~2週間 をIE6対応修正に費やす苦痛
  • ユーザーの18%がIE6利用者だったため、 サポート終了は困難 という現実
  • チームの忍耐が限界を迎え、 IE6サポート終了を“脅す”バナー案 が浮上

“IE6サポート終了バナー”の秘密計画

  • バナー内容:「 まもなくご利用のブラウザのサポートを終了します。よりモダンなブラウザにアップグレードしてください
  • 表示対象は IE6ユーザー限定、主要ブラウザ(Chrome, Firefox, IE8, Opera)へのリンク付き
  • 文言は 曖昧かつ期限未定 で、ユーザーにアップグレードを促す狙い
  • バナーは 閉じることも可能、目立たない仕様で監視の目を回避
  • 国際化対応を 意図的に遅延 し、翻訳者経由の発覚リスクも回避

OldTuber権限と本番環境への導入

  • YouTube初期エンジニア が独自に設けた“OldTuber”権限の存在
  • OldTuber取得者は、 Googleの厳格なコードレビューやテストを回避 して直接本番反映が可能
  • 開発チームの数名がOldTuber権限を取得し、 秘密裏にバナーコードを本番リリース
  • 失敗すれば 即時解雇リスク も覚悟の上での決行
  • コードは 最も反骨的な開発者 の名前でコミット、仲間が承認

社内外の反響と影響

  • 最初に反応したのは 広報チーム、次いで 法務部門 がChrome優遇を懸念
  • バナーのブラウザ表示順はランダム、Cookieで固定化していたことを実演し誤解を解消
  • エンジニアリングマネージャー たちからは特に叱責なし
  • Google DocsチームがYouTubeのバナーを模倣し、 同様のIE6サポート終了バナーを導入
  • 社内で「Google Docsがやったから」という誤解が広がり、 YouTube発の陰謀は表沙汰にならず
  • 結果的に Google全体でIE6脱却の流れ が加速し、Webの進化に貢献

まとめ

  • YouTube開発チーム によるIE6“殺害”計画は、Web開発現場の苦悩と創造的反抗の象徴
  • OldTuber権限 という特権と、チームの連携が生んだ大胆な実行力
  • 小さなバナー が業界全体のブラウザ進化を後押しした歴史的エピソード

Hackerたちの意見

2007年にBing(当時はLive Search)のフロントエンドで働いてたんだけど、マイクロソフト内でもIE6は嫌われてたし、特にウェブ開発をしてるチームからは反発があったね。入社してから約1年後に、Internet Explorer 5と6の元GMが僕の部署に異動してきたんだけど、彼の自己紹介メールにはIE6に対するちょっと恥ずかしげな謝罪が書いてあった。それを印刷して、Bingでの残りの時間ずっとオフィスの壁に貼ってたんだ。大事な宝物だったよ。あのブラウザ、ほんとにたくさんの悪夢を引き起こしたな。 (ちなみに、そのGMはいい人で賢い人だったけど、謝罪はちょっと皮肉が入ってた。IE6はリリース当初は間違いなく最高のブラウザだったからね。問題は、マイクロソフトが実質的にそれを見捨てて、何年も放置してしまったこと。ウェブはどんどん進化していったのに、IE6は取り残されて、IEのチームも当然のように嫌われ者になっちゃった。)

自動更新はHNで悪評高いけど、マイクロソフトが喜んでIE7や8をどのコンピュータにも配ってたわけじゃないからね。

MicrosoftはIE6を早く終わらせたくて、最新のアップデートをしたWindows Server 2022を新しくインストールすると、イベントビューアが起動時に「アクセス拒否!」ってエラーを出すんだ。IE6のログが無理やり削除されたからだけど、デフォルトの管理者ビューにはまだリストに残ってるんだよね。

キャリアの最初の数年は、インターネットファーストのマーケティングスタジオで働きながら、Internet Explorer 6の互換性に悩まされてた。レスポンシブウェブ開発みたいな概念を先駆けて取り入れてたんだ。IE6はリソースの無駄遣いだったよ。当時は主にMac OSで開発してたけど、IE6の機能がちゃんと動いてるか確認するために、デスクにはIE6テスト専用のPCを置いてた。IE6用のオーバーライドスタイルシートに組み込めるハックもいくつかあって、条件付きHTMLコメントを使ったり、特定のターゲットにするためにアスタリスクを使ったりしてた。IE6との機能の互換性を優先してたわけじゃないけど、サイトは正しく読み込まれて表示されなきゃいけなかったし、マーケティングの目的を果たす必要があったからね。ようやくIE6の採用が鈍化したときは、業界全体がホッとしたよ。これで自由にやれるって感じになったから、長い間妥協してたからね。

関連: IE6を殺す陰謀 (2019) - https://news.ycombinator.com/item?id=39294406 - 2024年2月 (106件のコメント) IE6を殺す陰謀 - https://news.ycombinator.com/item?id=38210439 - 2023年11月 (1件のコメント) IE6を殺す陰謀 (2019) - https://news.ycombinator.com/item?id=28725293 - 2021年10月 (80件のコメント) YouTubeでのIE6を殺す陰謀 - https://news.ycombinator.com/item?id=28655890 - 2021年9月 (2件のコメント) IE6を殺す陰謀 - https://news.ycombinator.com/item?id=19798678 - 2019年5月 (363件のコメント)

Netscape 4は、IE6以上に僕の人生を苦しめた存在だった。重要なクライアントがそれに内部で標準化しちゃったから、僕たちのプラットフォームは完全に互換性を持たなきゃいけなかった。IEならユーザーフレンドリーな方法でできたけど(開発とメンテナンスのコストは2倍くらいかかるけどね)。Netscape 4は、やりたかった体験を実現する能力がまったくなかった。極端にクレイジーで脆弱な回避策を使わなきゃいけなかったから、実際には5倍のコストに感じたよ。それに、IE4はウェブにとって素晴らしい進歩で、現代のアプリをサポートする道を開いてくれたから、IEには10年くらいは好意を持ってたな。

同意だね。今でもよく聞くけど、Netscapeが常に優れたブラウザだったっていう前提があって、IEを使ってる人は単に間違ってたって言われることが多いよね。実際、どっちも違った意味でクソだっただけだと思う。しばらくの間、NetscapeはCSSを実装しようとせず、自分たちのJavaScriptスタイルシート技術を使わせたかったけど、誰も使わなかったし。* まぁ、私は2000年代に生まれたけどね。

Netscape 4を使い続けてたけど、最初のMozillaが出るまでだったな。

心から感謝するよ。IE6を殺すために何をしたとしても、それは正当防衛だと思ってる。ブラウザ戦争の傷は残ってるし、「IE6」って文字を見るだけで今でも嫌悪感が湧く。自分としては、Googleが2010年3月に正式にIE6をサポートリストから外したその日に、うちの会社もIE6を外す計画を立てさせた。次の日には、公式の標準に準拠したコードをサイトに追加し始めて、あの豚が画面を正しく表示するために使ってた互換性ハックを全部取り除いたんだ。ほんとに解放感があったよ。

私の最初の本格的なウェブプログラミングの仕事は、IE-4/4.5/5とNetscape Communicatorをサポートしなきゃいけない複雑なウェブアプリを作ることだった。ちなみに、そのアプリはいまだに動いてるよ:https://resultview.q2labsolutions.com/resultview/logon/logon... バニラJavaScriptは本当に動くんだ。2001年頃のログインボタンに驚いて!

でもブラウザ戦争は終わってないよ… ChromeがIE6を単に置き換えただけ。今も同じ状況だよ:ウェブは実質的に一つの企業に所有されてる。

2012年にレストランや中小企業向けのウェブサイトを作るウェブ開発エージェンシーを運営してたんだけど、パートナーの一人がIE6をサポートしなきゃいけないって言って、CSS3やHTML5も使わないようにしろって言ってたんだ。実際の分析結果では3%未満の使用率だったのにね。本当に最悪の2年間だった。

皮肉なことに、YouTubeは今、自分たちが作り出したひどい標準サポートのブラウザをサポートせざるを得なくなってる。Cobalt[1]だ。テレビのYouTubeは実際には、カスタムウェブビューに読み込まれるウェブアプリなんだ。YouTubeチームは多くのウェブAPIを実装するリソースがないから、必要なものだけを実装したんだ。問題は、テレビのCobaltバージョンを信頼性を持って更新できないこと。ユーザーに更新をお願いすることもできないし、古いテレビを壊すわけにもいかない。だから、テレビのYouTubeフロントエンド(YouTube TVサービスではない)は、10年前に出荷したAPIしか使えない。古いCobaltバージョンがサポート外になるまで時間がかかるから、新機能の実装に投資することもできない。10年前、彼らと会議をしたときに、5年後には使えないから何かを実装できないって言ってたけど、今でも実装されてない。

でも、使い方はただ動画を配信するだけだよね?新しいものは出てこないってわかってる。でも、YouTubeはこの10年間ほとんど変わってないと思う。

10年前、彼らとの会議で「5年間は使えないから何かを実装できない」と言ってたのを覚えてる… いまだに実装してないけどね。これをトレーラーパーク論理って呼んでるんだ。「大学に行く必要ある?4年かかるし、今すぐ仕事が必要なんだ!」って言って、4年後にはまだ行き止まりの仕事をしてて、「大学に行く必要ある?4年かかるし、今すぐ仕事が必要なんだ!」って言ってる。

Cobaltブラウザで動画が読み込まれる時、なんでyoutube.com/cobalt/player/123456みたいなところにリダイレクトできないんだろう?こうすれば、古いhtml/css/jsの実装を新しいものと並行して動かせるのに。

古いCobaltバージョンがサポート終了するのに時間がかかるから、新機能の実装に投資しないんだって。新機能って何?YouTubeが実装してる唯一の「新機能」は、ショート動画を押し付けてくることと、サムネイルに動画の時間を表示するのに5秒かかることだけだよ。データはすでにあるのにね。「新機能」としてYouTubeが必要としてることは、15年前のブラウザ技術で実装できないことはない。あと、YouTubeのサイトはCobaltのテレビアプリに対処する必要もないし、YouTubeのモバイルアプリにも対処する必要がないんだ。

変更できない古いエンドポイントのおかげで、yt-dlpはちゃんと動いてるんだよね。

「YouTubeチームは多くのウェブAPIを実装するリソースがない。年間収益は数十億ドルだ。じゃあ、何が問題なんだ?」

錯覚しないで、「スタンダード」ってのは今や「Googleが望むこと」を意味してるんだ。15年前のYouTubeは、その時のマシンやソフトウェアで完璧に使えた。コバルトを持つことがいろんな理由で良いことだって結論に至るのはやめとくよ。

なんでブラウザやアプリを識別して、古いのには機能を制限した別のサイトを提供できないのかな?

以前、別のサイトでこの話を読んだことがある。2009年にはキャリアの初めだったけど、正直言って、あのバナーの影響を過大評価してると思う。私の意見では、重要な変化はWindows 7のマシンが古いXPマシンに取って代わった時だった。それが、当時私がサポートしていたサイトのGoogleアナリティクスで見たことだよ。

確かに、彼ら自身のグラフでもIE7の使用率が同じ時期に似たような割合で減ってるのがわかるね、バナーなしで。

2010年に、私のスタートアップではフロントエンドエンジニアの候補者に大きな特典を提供してた:IE6の互換性なんて気にしないって。

「うちの一番の反逆者ウェブ開発者、普段はおとなしいクロアチア人が、自分の名前でコードをチェックインすることにこだわってたんだ。個人的な名誉の証としてね。それで、他のみんなはOldTuberの地位を利用してコードレビューを承認した。あのクロアチア人、ありがとう!本当のインターネットのヒーローだよ。YouTubeにそのバナーが出た瞬間、私たちは顧客に同じことを伝えられたんだ。」

IE6はまさに炭鉱のカナリアだった。ウェブの変化を抑えることは、いろんな実装が使えるようにするためには良いことだった。あの頃のOperaや他のブラウザを覚えてる?IE6が死んだ後、Googleが変化を武器にして競合を潰していったんだ。最近のGoogleが自社の検索エンジンでもJSを要求するようになって、Lynxみたいなシンプルで基本的なブラウザを排除しているのは、ウェブの未来にとって非常に懸念すべきことだよ。

マイクロソフトがウェブを抑えていた理由は、アプリケーションの主要プラットフォームとしての支配力に対する脅威と見なしていたからだよ。もしウェブの未来を心配しているなら、過去じゃなくて、むしろAppleがSafariの開発を抑えて、みんながモバイル用のネイティブアプリを書くことに集中させている方が心配だと思う。昔はウェブサイトだったはずのアプリが、今ではネイティブコードで作られていることが多いからね。モバイルで良い顧客体験を得るためには、それが唯一の方法なんだ。

HTMLだけのウェブはもう何年も前に死んでるよ。ドキュメントは安全かもしれないけど、JSなしで動くウェブサイトを公開するのは、勝者のいない戦争みたいなもんだ。