- 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 컴파일러 기반의 기존 컴파일러가 이미 있었음
- 두 컴파일러가 함께 존재하면서 언어 정의를 더 명확히 할 수 있었음
- 동작이 다를 때마다 명세를 다듬고 올바른 동작을 정해야 했음
팀 내 역할과 제네릭 도입
- Taylor는 Go 팀에서 프로젝트 전반을 살피며 도움이 필요한 영역을 찾는 역할을 스스로 맡음
- 초기 몇 년 동안 Google 내부 빌드 시스템과 SWIG tool에 Go 지원을 추가함
- 몇 년 동안은 팀 매니저도 맡았음
- 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에 기여할 수 있기를 바람