2P by GN⁺ | ★ favorite | 댓글 1개
  • 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 compilerGo 프론트엔드를 추가하는 일이었음
  • 당시 Go 프로젝트에는 Inferno C 컴파일러 기반의 기존 컴파일러가 이미 있었음
  • 두 컴파일러가 함께 존재하면서 언어 정의를 더 명확히 할 수 있었음
    • 동작이 다를 때마다 명세를 다듬고 올바른 동작을 정해야 했음

팀 내 역할과 제네릭 도입

  • Taylor는 Go 팀에서 프로젝트 전반을 살피며 도움이 필요한 영역을 찾는 역할을 스스로 맡음
  • 초기 몇 년 동안 Google 내부 빌드 시스템과 SWIG toolGo 지원을 추가함
  • 몇 년 동안은 팀 매니저도 맡았음
  • Go 초기부터 개발자들은 어떤 형태의 제네릭 또는 타입 매개변수화 지원을 요청함
    • Taylor는 Robert Griesemer와 함께 여러 언어 변경 제안을 개발함
    • 제네릭은 Go 1.18 release in 2022에서 언어에 추가됨

자신의 작업 방식에 대한 평가

  • Taylor는 자신의 접근 방식에 장점과 단점이 모두 있었다고 봄
  • 장점은 사람들이 지금 겪는 문제와 곧 겪게 될 문제를 빠르게 파악하고, 해결로 이어지게 할 수 있었던 점임
  • 반대로 아직 시도되지 않아 필요성이 드러나지 않은 아이디어는 늦게 알아차리는 한계가 있었음
    • 예로 Go module proxy
    • 예로 Go vulnerability database

떠나는 이유와 이후 계획

  • Taylor는 자신의 방식이 성공적인 프로젝트를 만드는 데 전반적으로 도움이 됐다고 평가함
  • 하지만 Google, Go, 컴퓨터 프로그래밍 환경이 모두 변했음
  • 지난 1년가량 자신이 더 이상 Google의 Go 프로젝트에 잘 맞지 않는다는 점이 분명해졌다고 판단함
  • Go에 대한 관심은 여전히 남아 있음
  • 그는 Go 언어가 끝났다고 보지 않음
    • 어떤 프로그래밍 언어도 완성된 상태로 머무르지 않음
    • 프로그래밍 환경은 계속 변하고, 언어는 진화하지 않으면 사라짐
    • Go처럼 상당한 표준 라이브러리를 갖춘 언어는 프로그래머의 새로운 요구에 맞춰 표준 라이브러리도 적응해야 함
  • Taylor는 당분간 휴식을 취한 뒤, 앞으로 다시 Go에 기여할 수 있기를 바람

댓글과 토론

Hacker News 의견들
  • Ian이 Go 커뮤니티와 프로그래밍 커뮤니티 전체에 기여한 규모는 과장하기 어려움
    gccgo뿐 아니라 gold 링커를 만들었고, 컴파일러 도구체인에 대해 방대한 글을 썼으며, gcc 코드베이스의 큰 영역을 유지보수해 왔음 [0]
    몇 차례 이메일을 주고받았는데, Google에서 어떤 책임과 우선순위가 있었든 항상 답장하고 패치를 검토해 줬으며 피드백도 통찰력 있었음
    Go라는 언어 자체에 대해서는 복잡한 감정이 있지만, Ian이 빠진 Go는 분명 더 나빠질 것 같음
    초기 Go 팀은 Bell Labs 같은 분위기였고, 컴퓨터를 속속들이 이해한 소수의 사람들이 어셈블러, 링커, 두 컴파일러, 언어 명세, 문서 생성기, 빌드 시스템, 방대한 표준 라이브러리까지 모두 해냈음
    지금은 Go가 Google에 점점 더 중요해지고 대규모 소프트웨어 프로젝트의 표준 관행이 들어오면서 더 밋밋한 기업 문화가 된 듯함
    Ian이 메시지에서 암시한 것도 이런 문화 변화일 것 같지만, 떠나기로 한 구체적 분기점은 궁금함
    Ian이 충분히 쉴 수 있기를 바라며, 다음에 어떤 프로젝트를 하든 따라가 보고 싶음
    [0]: https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS

    • Go의 두 컴파일러 도구체인이 계속 잘 동작하는 건 중복성 확보와 기능 설계 검증 차원에서 매우 중요함
      다만 실제로 사람들이나 조직들이 gcc-go를 어떤 용도로 쓰는지 궁금함
  • Google에서 일할 때 Ian Lance Taylor가 무작위로 배정되는 코드 리뷰어 풀에 있었음
    그는 예의 바르고, 단호하며, 정보를 잘 전달해 줬음
    Taylor와 프로젝트 모두에 좋게 보이는 점인데, 이런 리뷰는 YC가 창업자에게 고객 지원을 직접 하라고 조언하는 것의 한 버전 같음
    얕은 감상일 수도 있지만, 내 코드 리뷰에 그의 이니셜이 뜨는 게 꽤 짜릿했음
    golang에 해준 모든 일에 감사함

    • 누군가가 예의 바른 사람으로 기억된다는 칭찬이 참 좋음
      똑똑하다, 10배 개발자다, 유능하다보다 예의 바르고 친절하고 좋은 사람으로 여겨지는 편이 낫다는 중요한 인생 교훈을 배웠음
    • Go에 별로 중요하지 않은 외부 기여자로서, 제안과 PR을 대여섯 개쯤 작업했는데 결과적으로 드롭되거나 거절된 것들에서도 똑같이 느꼈음
      예의 바르고, 단호하고, 정보를 잘 주며, 여기에 호기심도 있었다고 덧붙이고 싶음
      프로젝트에 기여하는 경험이 아주 좋았고 Ian이 큰 부분을 차지했음
      Go 같은 큰 프로젝트에서 이는 많은 것을 말해줌
    • Google의 Go 가독성 승인 과정도 정말 좋았고, 덕분에 훨씬 나은 프로그래머가 됐음
      Google에서 Python 가독성도 했지만, “거대한 CL 하나를 가져오고 과정 끝에 좋게 만들면 끝”이라는 방식은 Go의 과정만큼 유용하게 느껴지지 않았음
      Go 팀이 자기 규칙을 만든 게 기쁘고, 나에게도 도움이 됐음
      물론 한밤중 호출을 받고 “이 코드만 체크인하고 다시 자야 한다고” 생각하던 중에는 달랐지만 ;)
    • 비슷한 일이 있었는데, 내 마지막 C++ 가독성 변경에서 Titus Winters가 리뷰어였음
      그의 코멘트 하나에 반박도 해보려 했음
      정말 자기가 뭘 하는지 아는 사람이 내 작업에 승인 도장을 찍어줬다는 게 꽤 멋지게 느껴짐
    • 2014~2017년에 Google에 있었는데, Ian이 다른 사람들을 돕기 위해 자기 승진 패키지를 어떻게 만들었는지 공유했던 것 같음
      내가 잘못 기억한 게 아니라면 정말 대단했음
  • “Gooogle [sic]는 바뀌었고, Go도 바뀌었고, 전체 컴퓨터 프로그래밍 환경도 바뀌었다. 지난 1년쯤 사이에 내가 더 이상 Google의 Go 프로젝트에 잘 맞지 않는다는 게 분명해졌다. 이제 떠나야 한다”는 대목은 꽤 놀라움
    이 세 문장은 쉽게 빼거나 빈말로 바꿀 수 있었을 텐데, 굳이 이렇게 썼다는 건 여기 뭔가 무게감 있는 사정이 있음을 시사함

    • 지난 몇 년 동안 Google의 고위 엔지니어들이 많이 떠나는 걸 봤음
      관리 쪽 압박은 훨씬 커지고 신뢰는 훨씬 줄었음
      L7+ 중 상당수는 “충분한 영향력”을 가지려면 AI 관련 일을 해야 한다는 기대를 받기도 했음
      압박이 커지면서 이들 사이의 영역 다툼도 많아졌는데, 신뢰받는 관리자로 충분한 게 아니라 관련 문서 맨 위에 자기 이름이 있어야 하고 동료 이름이 있으면 안 되는 식이 됐음
      2023년 전에는 같이 일하던 L7, L8들이 흥미로운 새 기회를 찾거나 은퇴해서 Google을 떠나는 것만 거의 봤음
      이제 이 레벨에서 떠나는 사람들은 대부분 Google에 질려서 나감
      엉망임
    • 실제 기반 작업 대부분은 이미 열정 있는 진짜 엔지니어들이 깔아놨음
      오늘날 대형 기술 기업은 사람들이 돈 벌러 가는 곳일 뿐이고, 장기 비전에 꼭 관심이 있는 것도 아님
      대부분은 공학이나 컴퓨터에 대한 열정이 거의 없는, 억지로 학원식 훈련을 받은 부류로 채워져 있음
      상상력도, 틀 밖의 사고도 없고, 입사하려고 암기식으로 준비한 뒤 PIP나 해고를 당해 다른 대기업에서 같은 일을 반복함
      TC 아니면 꺼지라는 유형들임
      어제의 Google 같은 스타트업에서 더 운이 좋을 수 있음
    • “20년 다니다가 이제 떠난다”는 글을 읽을 때마다 “회사 가치가 몇 배로 뛰어서 비합리적으로 부자가 됐고, 이제 20년 뒤에는 내키지 않을 때도 출근해야 하는 직업이 필요 없거나 하고 싶지 않다”로 읽힘
    • 뛰어남이 별로 없는 Sundar Pichai를 Google의 리더로 세웠을 때, 이곳을 그저 또 하나의 돈 버는 회사로 바꾸고 원래 문화를 파괴하려는 게 분명해 보였음
    • 엔지니어링과 박사급 연구에 대한 존중이 사라졌음
      CEO로부터 내려오는 초점은 전부 수익성, 매출, 상업성에 맞춰져 있음
      이 사람이 예전에 이미 이렇게 쓴 것 같음
      “오늘날 Google의 많은 문제는 Sundar Pichai의 비전 있는 리더십 부재와, 초기 Google의 문화적 규범을 유지하는 데 대한 그의 명백한 무관심에서 비롯된다”
  • 2016년에 Google에 있을 때 전부 golang을 쓰는 팀에서 시작했음
    첫 프로젝트로 새 서비스를 만들고 있었고 Ian에게 가독성 승인을 여러 번 받았음
    한 번은 후속 요청이 붙은 승인을 받았는데, 그걸 못 보고 변경을 반영해 버렸음
    Ian이 다시 연락해 후속 작업을 해달라고 했고, 그때는 그가 핵심 Golang 개발자 중 한 명인지도 몰랐음
    굳이 그럴 필요가 없었는데도 정말 너그러웠고, 그 일은 항상 기억에 남을 것 같음
    언어가 실제로 어떻게 쓰이는지 보고 핵심 문제를 찾아내는 데 그렇게 많은 시간을 투자했다는 게 정말 대단함

  • “Gooogle은 바뀌었고, Go도 바뀌었고, 전체 컴퓨터 프로그래밍 환경도 바뀌었다. 지난 1년쯤 사이에 내가 더 이상 Google의 Go 프로젝트에 잘 맞지 않는다는 게 분명해졌다. 이제 떠나야 한다”는 문단을 더 자세히 듣고 싶음
    Ian이 알아챈 실제 변화가 있었던 것처럼 보임

    • 아마 더 AI스럽게 만들라는 요구를 받았을 듯함
      “Go 컴파일러 오류에 Gemini를 넣어 주세요, 아니면 나가세요” 같은 식
    • 더 설명할 게 있나? 공개적으로 이미 잘 문서화돼 있음
      반독점 문제, 단기 이익을 위해 회사를 팔아넘기는 형편없는 리더십, 오랫동안 압도적이던 기술 회사에서 또 다른 Microsoft/IBM 복제품으로 변한 뚜렷한 변화가 있음
      더는 업계 리더가 아니라 그저 유행을 따라가고 파도에 올라타고 있음, AI 유행처럼
      의심스러운 역사를 가진 정부에 굴복하고 시민의 죽음과 연결될 수 있는 프로젝트를 지원함
      “악해지지 말자”라니 웃기지도 않음
      계속되는 허풍과 억지로 삼켜야 하는 거짓말에 완전히 질렸을 것 같음
      퇴사 시점도 아마 주식 보상이나 옵션 만기와 맞췄을 수 있음
  • 여기서 메타 질문은 오늘날 2005년의 Google이 무엇이냐는 것임
    정말 OpenAI인가? 아예 존재하긴 하나?
    더 메타한 질문은, 많은 엔지니어가 황금기로 기억하는 상태의 Google이 실제로 얼마나 오래 지속됐느냐는 것임

    • 2005년의 Google은 다시 존재하지도, 존재할 수도 없다고 봄
      그 회사는 기반 기술이 훨씬 강력해지던 시대에 태어났고, 그 시기에 기술에 창의적으로 투자한 회사는 상상하기 어려울 만큼 부유해졌음
      2022년에 Google에 합류했다가 떠났는데, 신입의 눈에도 황금기는 끝났을 뿐 아니라 황금기 이후의 시대도 저물어 가고 있다는 게 분명했음
      분위기는 “무모한 혁신은 끝났지만 제품을 최대한 훌륭하게 만들자”가 아니라 “아무것도 망가뜨리지 말고 가능하면 1~2% 개선을 짜내자”였음
    • 존재하지 않는다고 봄
      Google은 Bell Labs처럼 그 시대만의 산물이었고, Bell Labs도 현대의 대응물이 없음
    • 존재하지 않음
      만들 기회는 있음
      이 세대 회사들의 문제는 기술이 아니라 문화라고 생각함
    • 관찰자로 보기엔 황금기는 2013~2014년쯤 끝났어야 함
      기술 문화가 무자비한 자본주의로 너무 가득 차서 다시는 그런 일이 일어나지 않을 것 같음
      예전에는 그래도 혁신하고 실험하려는 의지가 있다는 느낌은 있었음
      지금은 그냥 기계에 기름칠하는 일뿐임
    • 아직 없거나 우리가 보지 못하는 것임
      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 팀으로 대체한 뒤, 다시 더 낮은 연봉 지역의 새 팀으로 인원을 채웠음
    • “그녀의 부서에는 명목상 전략이 있지만, 누설하고 싶어도 할 수 없다. 수년 동안 그녀가 설명하는 걸 들었는데도 어떤 부분이 무슨 뜻인지 문자 그대로 전혀 알아낼 수 없었다”는 부분은 Google에서 상위 중간관리자부터 VP, 때로는 SVP 수준까지 상대하며 겪은 것과 같았음
      그들의 소통 방식은 이해 불가능하고, 모든 것을 말하면서 동시에 아무것도 말하지 않음
      극적인 변화와 모든 것이 그대로라는 메시지가 동시에 담긴 발표가 나오니 매우 혼란스러움
      내 이론은 이것이 방향을 정하거나 비전이나 목표를 설명하기 위한 게 아니라, 다른 관리자들에게 인상적으로 보이고 사회적 위치를 잡기 위한 무언가로 수렴한다는 것임
      성과 평가 때 공을 챙기는 재료로 쓰임
      기억나는 밈 중 하나가 “5초 안에 어느 팀 소속인지 대답할 수 없으면 Googler일지도 모른다”였음
      엔지니어들은 극도로 뛰어나지만, 가면 증후군도 널리 퍼져 있고, 눈가리개를 한 채 제각각 다른 방향으로 헤매는 느낌임
      큰 회사를 어떻게 운영해야 하는지는 나도 모르지만, 좋은 출발점은 명확하고 묘사적인 언어를 쓰는 것일 듯함
      분명 기업어 통역 전문가들조차 공유된 현실을 만들지 못하고 있음
    • 공유해줘서 고마움
      우리 업계에 대해 가장 두려운 것 중 하나는 초기 Google 같은 회사를 다시는 갖지 못할지도 모른다는 점임
      Pichai가 지휘권을 잡았을 때 회사 이름을 바꿨어야 했음
      알아볼 수 없는 무언가로 변했기 때문임
      Google에서 일했다고 만나는 사람 대부분은 그의 체제 아래에서 일한 사람들일 것임
    • 흔히 말하듯 사람들은 회사에 합류하지만, 떠나는 건 관리자 때문에 떠남
    • 아, 그렇지, “자원” 배정하기
  • Google 핵심 인력들이 Chrome에 이어 이제 golang 프로젝트에서도 떠난다면, 경영진이 잘하고 있지 않다는 게 꽤 분명해 보임

    • 경영진이 잘하고 있지 않다는 다른 신호도 있을 수 있지만, 이 사람이 19년 후에 떠난다는 점은 잊지 말아야 함
    • Google은 모든 카드를 AI에 걸고 있고, 이를 존재론적 싸움으로 보고 있음
      아마 맞을 것임
  • Google 내부 정치에 대해 잘 알지는 못하지만, 몇 년 동안 유명 인물들이 갑작스럽게 퇴사를 발표하는 글과 블로그 글이 꽤 잦아 보임
    이 흐름 뒤에는 무엇이 있을까?

    • Google은 탐색에서 수확으로 전환했음
      Google에서 나를 지치게 했던 모든 구체적 불편의 뿌리를 파고들면 결국 여기에 닿았고, 그래서 8월에 떠났음
    • 기업 부패
      비교적 작은 조직일 때 최고 인재들을 뽑아 성공한 뒤 숫자를 키우면, 그 모델은 확장 가능하지 않기 때문에 내려가게 됨
      수만 명 규모가 되면 “전문 경영진”이라는 얼간이들이 들어오고, 조직은 먼저 평균적으로 쇠퇴함
      세상에는 수만 명의 정말 뛰어난 사람이 충분하지 않기 때문임
      그다음엔 얼간이들이 엄청난 부정적 영향을 끼치며 조직이 썩기 시작함
      그들이 문화를 나쁜 쪽으로 바꾸면 최고의 사람들은 떠나고, 평균 직원 수준은 더 내려감
      가격이 아니라 직원 품질에서 바닥을 향한 경주가 벌어짐
  • Google은 Go를 비영리 재단으로 분리하고 10억 달러를 줘서 독립시켜야 함
    Russ Cox에게 종신 선의의 독재자로 운영해 달라고 간청하고, Ian Lance Taylor를 다시 고용할 수 있기를 바라야 함