Googleを去るにあたって
(airs.com)- Ian Lance TaylorはGoogleで19年勤務した後に退職し、その大半をGoプログラミング言語の開発に費やした
- Goは2007年秋にRob Pike、Ken Thompson、Robert Griesemerが始め、Taylorは2008年6月にRuss Coxとほぼ同じ時期に参加した
- 当初の期待とは異なり、Goは単なるアイデアの実験にとどまらず、開発者が状況に応じて選べる一般的なプログラミング言語として定着した
- TaylorはGCC向けGoフロントエンド、Google内部ビルドシステム、SWIG対応、チーム管理、ジェネリクス提案など、Goの言語とエコシステムの基盤作業に携わった
- Google、Go、プログラミング環境のすべてが変化する中で、TaylorはGoogleのGoプロジェクトとの適合性が低下したと判断し、休息後に再びGoへ貢献したいと考えている
Googleでの19年とGoへの参加
- Ian Lance TaylorはGoogleで19年間働いた後、同社を去った
- 勤務期間の大半をGo programming languageの作業に費やした
- Goは2007年秋にRob Pike、Ken Thompson、Robert Griesemerが始めた
- Taylorは2008年6月にGoチームへ参加し、Russ Coxもほぼ同じ時期に参加した
- 彼は、優れた人々と興味深いプロジェクトに取り組めたことを幸運だったと振り返っている
予想以上に広がったGoの用途
- Taylorは、Goが何年にもわたって予想を大きく上回るほど広く使われるようになったことに驚いている
- Goは今や、開発者が必要に応じて選択できる一般的なプログラミング言語という位置に到達した
- 当初の期待は、Goそのものが大規模に普及することというより、他の言語やプログラミング環境が参考にできる有用なアイデアの事例に近いものだった
コンパイラと言語仕様の作業
- Taylorの最初のGo関連の仕事は、GCC compilerにGoフロントエンドを追加することだった
- 当時のGoプロジェクトには、Inferno Cコンパイラをベースにした既存のコンパイラがすでにあった
- 2つのコンパイラが併存することで、言語定義をより明確にできた
- 挙動が異なるたびに仕様を磨き込み、正しい挙動を決める必要があった
チーム内での役割とジェネリクス導入
- TaylorはGoチームで、プロジェクト全体を見渡し、支援が必要な領域を見つける役割を自ら担った
- 初期の数年間は、Google内部ビルドシステムとSWIG toolにGo対応を追加した
- 数年間はチームマネージャーも務めた
- Goの初期から、開発者は何らかの形のジェネリクスまたは型パラメータ化のサポートを求めていた
- TaylorはRobert Griesemerとともに、複数の言語変更提案を作成した
- ジェネリクスは2022年のGo 1.18リリースで言語に追加された
自身の仕事の進め方への評価
- Taylorは、自身のアプローチには長所と短所の両方があったと見ている
- 長所は、人々が今直面している問題と近いうちに直面する問題を素早く把握し、解決につなげられたことだ
- 一方で、まだ試されておらず必要性が表面化していないアイデアに気づくのが遅れるという限界もあった
- 例としてGo module proxy
- 例としてGo vulnerability database
去る理由と今後の計画
- Taylorは、自身のやり方が成功するプロジェクトを作るうえで全体として役立ったと評価している
- しかし、Google、Go、コンピュータプログラミング環境のすべてが変わった
- この1年ほどで、自分がもはやGoogleのGoプロジェクトにうまく合わなくなっていることが明確になったと判断した
- Goへの関心は今も残っている
- 彼はGo言語が終わったとは考えていない
- どのプログラミング言語も、完成した状態にとどまることはない
- プログラミング環境は変化し続け、言語は進化しなければ消えていく
- Goのように相当な標準ライブラリを備えた言語では、プログラマーの新たな要求に合わせて標準ライブラリも適応しなければならない
- Taylorは当面休息を取り、その後またGoに貢献できることを望んでいる
1件のコメント
Hacker Newsの意見
IanがGoコミュニティとプログラミングコミュニティ全体に貢献した規模は、いくら強調してもしすぎることはない
gccgoだけでなくgoldリンカーを作り、コンパイラツールチェーンについて膨大な文章を書き、gccコードベースの広い領域を保守してきた [0]
何度かメールをやり取りしたことがあるが、Googleでどんな責任や優先順位を抱えていたにせよ、常に返信し、パッチをレビューしてくれ、フィードバックも洞察に富んでいた
Goという言語自体については複雑な感情があるが、IanのいないGoは明らかに悪くなると思う
初期のGoチームにはBell Labsのような雰囲気があり、コンピュータを隅々まで理解した少数の人々が、アセンブラ、リンカー、2つのコンパイラ、言語仕様、ドキュメント生成器、ビルドシステム、膨大な標準ライブラリまで、すべてをやり遂げた
今ではGoがGoogleにとってますます重要になり、大規模ソフトウェアプロジェクトの標準的な慣行が入り込むにつれて、より平板な企業文化になってしまったように見える
Ianがメッセージで示唆していたのもこうした文化変化なのだろうが、退職を決めた具体的な分岐点は気になる
Ianが十分に休めることを願っているし、次にどんなプロジェクトをやるにせよ追いかけてみたい
[0]: https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS
ただ、実際に人々や組織がgcc-goをどんな用途で使っているのかは気になる
Googleで働いていたとき、Ian Lance Taylorはランダムに割り当てられるコードレビュアーのプールにいた
彼は礼儀正しく、毅然としていて、情報をきちんと伝えてくれた
Taylorにもプロジェクトにも好ましく映る点だが、こうしたレビューは、YCが創業者に顧客サポートを自分でやるよう助言することの一種のバージョンのように思える
浅い感想かもしれないが、自分のコードレビューに彼のイニシャルが表示されるのはかなり胸が高鳴った
golangに対してしてくれたすべてのことに感謝している
頭がいい、10倍開発者だ、有能だと言われるより、礼儀正しく親切で良い人だと思われるほうがよい、という大事な人生の教訓を学んだ
礼儀正しく、毅然としていて、情報をよく提供してくれ、さらに好奇心もあったと付け加えたい
プロジェクトに貢献する経験はとても良く、Ianがその大きな部分を占めていた
Goのような大きなプロジェクトでは、これは多くを物語っている
GoogleでPythonの可読性も受けたが、「巨大なCLを1つ持ってきて、プロセスの終わりに良いものにすれば終わり」というやり方は、Goのプロセスほど有用には感じられなかった
Goチームが独自のルールを作ったことをうれしく思うし、自分にも役立った
もちろん、深夜に呼び出されて「このコードだけチェックインして、また寝なきゃ」と思っていたときは別だったが ;)
彼のコメントの1つに反論しようともした
本当に自分が何をしているか分かっている人が、自分の作業に承認の印を押してくれたというのは、かなり格好いいことに感じられる
私の記憶違いでなければ、本当にすごいことだった
「Gooogle [sic]は変わり、Goも変わり、コンピュータプログラミング環境全体も変わった。この1年ほどで、自分がもはやGoogleのGoプロジェクトには合わないことが明らかになった。もう去るべき時だ」というくだりはかなり驚きだ
この3文は簡単に削ることも、無難な言葉に置き換えることもできたはずなのに、あえてこう書いたということは、ここに何か重みのある事情があることを示唆している
マネジメント側からの圧力ははるかに強まり、信頼ははるかに減った
L7+のかなりの人たちは、「十分な影響力」を持つにはAI関連の仕事をしなければならないという期待も受けていた
圧力が高まるにつれて彼らの間で縄張り争いも増え、信頼されるマネージャーであるだけでは不十分で、関連ドキュメントの一番上に自分の名前があり、同僚の名前があってはならない、というような状況になった
2023年以前は、一緒に働いていたL7、L8がGoogleを去るのは、興味深い新しい機会を見つけたか、引退した場合くらいしかほとんど見なかった
今ではこのレベルで辞める人の大半は、Googleにうんざりして去っていく
めちゃくちゃだ
今日の大手テック企業は、人々がお金を稼ぎに行く場所にすぎず、長期的ビジョンに必ずしも関心があるわけではない
ほとんどは、工学やコンピュータへの情熱がほとんどない、無理やり塾式の訓練を受けたような層で埋められている
想像力も、枠の外で考える力もなく、入社のために暗記式に準備した後、PIPや解雇に遭い、別の大企業で同じことを繰り返す
TCでなければ消えろ、というタイプの人たちだ
昨日のGoogleのようなスタートアップにいたほうが、もっと運がいいかもしれない
CEOから降りてくる焦点はすべて収益性、売上、商業性に向けられている
この人は以前にもすでにこう書いていたように思う
「今日のGoogleの多くの問題は、Sundar Pichaiのビジョンあるリーダーシップの欠如と、初期Googleの文化的規範を維持することへの彼の明白な無関心に由来する」
2016年にGoogleにいたとき、全員がgolangを使うチームで始めた
最初のプロジェクトとして新しいサービスを作っていて、Ianから何度も可読性承認を受けた
一度、フォローアップ依頼付きの承認をもらったのに、それを見落として変更を反映してしまった
Ianが再度連絡してフォローアップ作業をしてほしいと言ってきたが、そのときは彼がGolangのコア開発者の一人だとも知らなかった
そこまでする必要はなかったのに本当に寛大で、そのことはずっと記憶に残ると思う
言語が実際にどう使われているかを見て、核心的な問題を見つけ出すために、あれほど多くの時間を投じていたのは本当にすごい
「Gooogleは変わり、Goも変わり、コンピュータープログラミング環境全体も変わった。この1年ほどの間に、私はもはやGoogleのGoプロジェクトにうまく合わなくなったことが明らかになった。今こそ離れるべきだ」という段落について、もっと詳しく聞きたい
Ianが気づいた実際の変化があったように見える
「GoコンパイラのエラーにGeminiを入れてください。さもなければ出ていってください」みたいな感じで
反トラスト問題、短期的利益のために会社を売り渡すひどいリーダーシップ、長らく圧倒的だったテック企業から、また別のMicrosoft/IBMのコピーへと変わった明確な変化がある
もはや業界のリーダーではなく、ただ流行を追いかけ、その波に乗っているだけだ。AIブームのように
疑わしい歴史を持つ政府に屈し、市民の死につながり得るプロジェクトを支援している
「邪悪になるな」なんて、笑えもしない
続く大言壮語と、無理やり飲み込まされる嘘に、完全にうんざりしたのだと思う
退職のタイミングも、おそらく株式報酬やオプションの権利確定に合わせたのかもしれない
ここでのメタな問いは、今日における2005年のGoogleとは何かということ
本当にOpenAIなのか? そもそも存在するのか?
さらにメタな問いは、多くのエンジニアが黄金期として記憶している状態のGoogleが、実際にはどれほど長く続いたのかということ
あの会社は基盤技術がはるかに強力になっていく時代に生まれ、その時期に技術へ創造的に投資した会社は、想像しがたいほど裕福になった
2022年にGoogleに入ってから去ったが、新人の目にも、黄金期は終わっているだけでなく、黄金期後の時代も暮れつつあることは明らかだった
雰囲気は「無謀なイノベーションは終わったが、製品をできる限り優れたものにしよう」ではなく、「何も壊さず、可能なら1〜2%の改善を絞り出そう」だった
GoogleはBell Labsのようにその時代ならではの産物であり、Bell Labsにも現代の対応物はない
作る機会はある
この世代の企業の問題は技術ではなく文化だと思う
技術文化が冷酷な資本主義にあまりにも満たされてしまい、二度とああいうことは起きない気がする
昔はそれでも、革新し実験しようという意志があるようには感じられた
今はただ機械に油を差しているだけだ
1兆ドルを超えて成長する産業と、検索のように根本的でどこにでもある道具を提供する会社を予測しようとしているようなものだ
陰謀論を作ろうとしているわけではないが、Ian Hickson が Google/Flutter チームを去った件 [1] と関係があるのか気になる
彼は具体的に何人かの名前を挙げていた
「今日の Google の多くの問題は、Sundar Pichai のビジョンあるリーダーシップの欠如と、初期 Google の文化的規範を維持することへの彼の明らかな無関心に由来している。その症状の一つが、無能な中間管理職の蔓延だ。たとえば Jeanine Banks は Flutter、Dart、Go、Firebase などをやや恣意的に含む部門を管理している。彼女の部門には名目上の戦略があるが、漏らしたくても漏らせない。何年も彼女が説明するのを聞いてきたが、どの部分が何を意味するのか文字どおりまったく分からなかった。彼女が自分のチームが何をしているかを理解しているレベルは、せいぜい最低限だ。彼女はしばしば完全に辻褄が合わず、適用不可能な要求をする。エンジニアを商品として扱って非人間的に接し、本人の意思とは無関係に、能力ともまったく関係のない形で人々を配置転換する。彼女は建設的なフィードバックをまったく受け入れられない。文字どおり認めさえしない。他のチームには私より政治的に賢いリーダーがいて、彼女を『扱う』方法を学んだと聞いた。適切なタイミングで適切な情報だけを与え、面倒を起こさせないようにする、という具合だ。最高の Google を見てきた立場からすると、この新しい現実は憂鬱だ」
[1]: https://ln.hixie.ch/?start=1700627373
別の幹部は Python チーム全体を解雇した
その多くは Python のコアコントリビューターで、より低い給与の TypeScript チームに置き換えた後、さらに給与水準の低い地域の新チームで人員を埋めた
彼らのコミュニケーションの仕方は理解不能で、すべてを語っているようで同時に何も語っていない
劇的な変化と、すべてがそのままだというメッセージが同時に入った発表が出るので、非常に混乱する
私の説では、これは方向性を定めたり、ビジョンや目標を説明したりするためのものではなく、他の管理職に印象づけ、社会的な立ち位置を確保するための何かに収束しているのだと思う
業績評価のときに手柄として使う材料になる
覚えているミームの一つに「5秒以内に自分がどのチーム所属か答えられなければ、Googler かもしれない」というものがあった
エンジニアたちは極めて優秀だが、インポスター症候群も広く蔓延していて、目隠しをされたまま、それぞれ別の方向へさまよっているような感じだ
大企業をどう運営すべきかは私にも分からないが、よい出発点は明確で描写的な言葉を使うことだと思う
どうやら企業語の通訳専門家たちでさえ、共有された現実を作れていない
私たちの業界について最も恐れていることの一つは、初期の Google のような会社を二度と持てないかもしれないという点だ
Pichai が指揮権を握ったときに会社名を変えるべきだった
見分けのつかない何かに変わってしまったからだ
Google で働いていたと言って会う人の大半は、彼の体制下で働いた人たちだろう
Google の中核人材が Chrome に続いて今度は golang プロジェクトからも去るなら、経営陣がうまくやっていないことはかなり明らかに見える
おそらくその通りだろう
Google 内部の政治についてよく知っているわけではないが、ここ数年、有名人物が突然退職を発表する投稿やブログ記事がかなり頻繁に見える
この流れの背後には何があるのだろうか?
Google で私を消耗させたあらゆる具体的な不満の根をたどると結局ここに行き着き、それで8月に辞めた
比較的小さな組織のときに最高の人材を採用して成功し、その後に人数を増やすと、そのモデルはスケールしないため低下していく
数万人規模になると「プロ経営陣」という間抜けたちが入ってきて、組織はまず平均的に衰退する
世の中には本当に優秀な人が数万人も十分にはいないからだ
その次に、間抜けたちが甚大な悪影響を及ぼし、組織が腐り始める
彼らが文化を悪い方向に変えると、最高の人たちは去り、平均的な社員の水準はさらに下がる
価格ではなく社員の質で底辺への競争が起きる
Google は Go を非営利財団として切り離し、10億ドルを与えて独立させるべきだ
Russ Cox に終身の善意の独裁者として運営してくれるよう懇願し、Ian Lance Taylor を再雇用できることを願うべきだ