Rời Google
(airs.com)- Ian Lance Taylor rời Google sau 19 năm làm việc, và dành phần lớn thời gian đó cho việc phát triển ngôn ngữ lập trình Go
- Go được Rob Pike, Ken Thompson và Robert Griesemer khởi động vào mùa thu năm 2007, còn Taylor gia nhập vào tháng 6/2008, gần cùng thời điểm với Russ Cox
- Trái với kỳ vọng ban đầu, Go đã vượt qua mức một thử nghiệm ý tưởng đơn giản để trở thành một ngôn ngữ lập trình phổ dụng mà lập trình viên có thể chọn tùy theo nhu cầu
- Taylor đã tham gia các công việc nền tảng cho ngôn ngữ và hệ sinh thái Go như frontend Go cho GCC, hệ thống build nội bộ của Google, hỗ trợ SWIG, quản lý nhóm và đề xuất generics
- Khi Google, Go và môi trường lập trình đều thay đổi, Taylor nhận thấy mình ngày càng ít phù hợp với dự án Go tại Google, và hy vọng sẽ tiếp tục đóng góp cho Go sau một thời gian nghỉ ngơi
19 năm ở Google và gia nhập Go
- Ian Lance Taylor rời công ty sau 19 năm làm việc tại Google
- Ông đã dành phần lớn thời gian làm việc cho Go programming language
- Go được Rob Pike, Ken Thompson, Robert Griesemer khởi động vào mùa thu năm 2007
- Taylor gia nhập nhóm Go vào tháng 6/2008, và Russ Cox cũng tham gia vào thời điểm tương tự
- Ông cho rằng mình rất may mắn khi được làm việc cùng những con người xuất sắc và các dự án thú vị
Phạm vi sử dụng của Go rộng hơn dự kiến
- Taylor ngạc nhiên khi Go được sử dụng rộng rãi hơn nhiều so với dự đoán trong nhiều năm qua
- Giờ đây Go đã đạt đến vị thế của một ngôn ngữ lập trình phổ dụng mà lập trình viên có thể lựa chọn khi cần
- Kỳ vọng ban đầu không phải là Go tự nó sẽ lan rộng ở quy mô lớn, mà gần hơn với việc trở thành một ví dụ về các ý tưởng hữu ích để những ngôn ngữ và môi trường lập trình khác tham khảo
Công việc về compiler và đặc tả ngôn ngữ
- Công việc Go đầu tiên của Taylor là thêm frontend Go vào GCC compiler
- Khi đó dự án Go đã có sẵn một compiler hiện hữu dựa trên compiler C của Inferno
- Việc hai compiler cùng tồn tại đã giúp định nghĩa ngôn ngữ trở nên rõ ràng hơn
- Mỗi khi hành vi khác nhau, nhóm phải tinh chỉnh đặc tả và xác định hành vi đúng
Vai trò trong nhóm và việc đưa generics vào
- Taylor tự đảm nhận vai trò quan sát toàn bộ dự án trong nhóm Go và tìm ra những khu vực cần hỗ trợ
- Trong những năm đầu, ông đã thêm hỗ trợ Go cho hệ thống build nội bộ của Google và SWIG tool
- Ông cũng từng giữ vai trò quản lý nhóm trong vài năm
- Ngay từ giai đoạn đầu của Go, các lập trình viên đã yêu cầu hỗ trợ một dạng generics hoặc tham số hóa kiểu
- Taylor đã cùng Robert Griesemer phát triển nhiều đề xuất thay đổi ngôn ngữ
- Generics được thêm vào ngôn ngữ trong Go 1.18 release in 2022
Tự đánh giá về cách làm việc của mình
- Taylor cho rằng cách tiếp cận của mình có cả ưu điểm lẫn nhược điểm
- Ưu điểm là ông có thể nhanh chóng nhận ra các vấn đề mà mọi người đang gặp phải hoặc sắp gặp phải, rồi thúc đẩy việc đi đến giải pháp
- Ngược lại, ông có hạn chế trong việc nhận ra muộn những ý tưởng chưa từng được thử nên nhu cầu của chúng chưa lộ rõ
- Ví dụ: Go module proxy
- Ví dụ: Go vulnerability database
Lý do rời đi và kế hoạch sau đó
- Taylor đánh giá rằng cách làm của mình nhìn chung đã góp phần giúp xây dựng một dự án thành công
- Tuy nhiên, Google, Go và môi trường lập trình máy tính đều đã thay đổi
- Trong khoảng một năm qua, ông đi đến kết luận rõ ràng rằng mình không còn thực sự phù hợp với dự án Go của Google nữa
- Ông vẫn giữ sự quan tâm đối với Go
- Ông không cho rằng ngôn ngữ Go đã hoàn tất
- Không có ngôn ngữ lập trình nào ở trạng thái hoàn thiện mãi mãi
- Môi trường lập trình luôn thay đổi, và ngôn ngữ nào không tiến hóa sẽ biến mất
- Với một ngôn ngữ có thư viện chuẩn đáng kể như Go, thư viện chuẩn cũng phải thích nghi với những nhu cầu mới của lập trình viên
- Taylor dự định sẽ nghỉ ngơi một thời gian, rồi hy vọng có thể tiếp tục đóng góp cho Go trong tương lai
1 bình luận
Các ý kiến trên Hacker News
Khó mà nói quá về quy mô những đóng góp của Ian cho cộng đồng Go và cả cộng đồng lập trình nói chung
Không chỉ gccgo, ông còn tạo ra gold linker, viết rất nhiều bài về compiler toolchain, và đã duy trì những mảng lớn trong codebase của gcc [0]
Tôi từng trao đổi email vài lần; dù ông có trách nhiệm và ưu tiên gì ở Google, ông luôn trả lời, review patch và đưa ra phản hồi rất sâu sắc
Tôi có cảm xúc phức tạp về chính ngôn ngữ Go, nhưng Go thiếu Ian chắc chắn sẽ tệ hơn
Đội Go thời kỳ đầu có bầu không khí giống Bell Labs: một nhóm nhỏ những người hiểu máy tính đến tận gốc đã làm tất cả, từ assembler, linker, hai compiler, đặc tả ngôn ngữ, trình tạo tài liệu, build system cho đến một thư viện chuẩn đồ sộ
Giờ đây Go ngày càng quan trọng hơn với Google, các thông lệ tiêu chuẩn của những dự án phần mềm quy mô lớn cũng du nhập vào, và có vẻ nó đã trở thành một văn hóa doanh nghiệp nhạt nhòa hơn
Có lẽ điều Ian ám chỉ trong thông điệp của mình cũng là sự thay đổi văn hóa này, nhưng tôi tò mò không biết đâu là bước ngoặt cụ thể khiến ông quyết định rời đi
Mong Ian có thể nghỉ ngơi thật đủ, và tôi muốn theo dõi xem tiếp theo ông sẽ làm dự án nào
[0]: https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS
Tuy vậy, tôi cũng tò mò thực tế mọi người hay các tổ chức dùng gcc-go vào việc gì
Khi tôi làm ở Google, Ian Lance Taylor nằm trong nhóm code reviewer được phân ngẫu nhiên
Ông lịch sự, kiên quyết và truyền đạt thông tin rất rõ
Điều này tạo ấn tượng tốt cho cả Taylor lẫn dự án; kiểu review như vậy giống một phiên bản của lời khuyên YC dành cho founder rằng hãy tự mình làm hỗ trợ khách hàng
Có thể chỉ là cảm nhận nông cạn, nhưng việc thấy chữ cái viết tắt của ông xuất hiện trong code review của tôi khá là phấn khích
Cảm ơn ông vì tất cả những gì đã làm cho golang
Tôi đã học được một bài học cuộc sống quan trọng: được xem là người lịch sự, tử tế và tốt bụng còn hơn là được gọi là thông minh, lập trình viên 10x hay giỏi giang
Lịch sự, kiên quyết, cung cấp thông tin tốt, và tôi muốn thêm rằng ông còn có cả sự tò mò
Trải nghiệm đóng góp cho dự án rất tốt, và Ian là một phần lớn trong đó
Với một dự án lớn như Go, điều đó nói lên rất nhiều
Ở Google tôi cũng làm readability cho Python, nhưng cách “mang tới một CL khổng lồ rồi đến cuối quy trình làm cho nó tốt lên là xong” không hữu ích bằng quy trình của Go
Tôi vui vì đội Go đã tự đặt ra quy tắc của họ, và điều đó cũng giúp ích cho tôi
Tất nhiên là cảm giác sẽ khác khi bị gọi lúc nửa đêm và nghĩ “mình chỉ cần check in đoạn code này rồi quay lại ngủ” ;)
Tôi còn thử phản biện một bình luận của ông ấy
Cảm giác khá tuyệt khi một người thật sự biết mình đang làm gì đóng dấu chấp thuận lên công việc của tôi
Nếu tôi không nhớ nhầm thì điều đó thật sự rất ấn tượng
Đoạn “Gooogle [sic] đã thay đổi, Go đã thay đổi, và toàn bộ môi trường lập trình máy tính cũng đã thay đổi. Trong khoảng một năm qua, tôi thấy rõ rằng mình không còn phù hợp với dự án Go của Google nữa. Giờ là lúc phải rời đi” khá gây ngạc nhiên
Ba câu này lẽ ra có thể dễ dàng bị bỏ đi hoặc thay bằng lời xã giao, nhưng việc ông cố ý viết như vậy cho thấy ở đây có điều gì đó có trọng lượng
Áp lực từ phía quản lý lớn hơn nhiều, còn sự tin tưởng thì giảm đi rất nhiều
Khá nhiều người ở cấp L7+ cũng được kỳ vọng phải làm việc liên quan đến AI nếu muốn có “đủ tầm ảnh hưởng”
Khi áp lực tăng lên, tranh giành lãnh địa giữa họ cũng nhiều hơn; không chỉ là làm một manager đáng tin cậy là đủ nữa, mà phải có tên mình ở đầu tài liệu liên quan và không được có tên đồng nghiệp ở đó
Trước năm 2023, tôi hầu như chỉ thấy các L7, L8 từng làm việc cùng rời Google vì tìm được cơ hội mới thú vị hoặc nghỉ hưu
Giờ thì phần lớn những người rời đi ở cấp này là vì đã chán ngấy Google
Thật hỗn loạn
Ngày nay, các công ty công nghệ lớn chỉ là nơi người ta đến để kiếm tiền, chứ không nhất thiết quan tâm đến tầm nhìn dài hạn
Phần lớn được lấp đầy bởi kiểu người hầu như chẳng có đam mê với kỹ thuật hay máy tính, chỉ bị nhồi luyện theo kiểu lò luyện thi
Không có trí tưởng tượng, không có tư duy vượt khuôn khổ; họ học thuộc để vào công ty, rồi bị PIP hoặc sa thải và lại lặp lại việc tương tự ở một tập đoàn lớn khác
Kiểu người “TC hoặc biến”
Có lẽ bạn sẽ may mắn hơn ở những startup giống Google của ngày hôm qua
Trọng tâm từ CEO đổ xuống toàn là lợi nhuận, doanh thu, tính thương mại
Hình như người này trước đây đã viết như thế này
“Nhiều vấn đề của Google ngày nay bắt nguồn từ việc Sundar Pichai thiếu năng lực lãnh đạo có tầm nhìn, và sự thờ ơ rõ ràng của ông đối với việc duy trì các chuẩn mực văn hóa của Google thời kỳ đầu”
Năm 2016, khi còn ở Google, tôi bắt đầu trong một nhóm dùng toàn bộ golang
Dự án đầu tiên là xây dựng một dịch vụ mới, và tôi đã nhiều lần nhận được phê duyệt về tính dễ đọc từ Ian
Có một lần tôi nhận được phê duyệt kèm yêu cầu theo sau, nhưng không thấy phần đó và đã áp dụng thay đổi
Ian liên hệ lại và nhờ tôi làm phần tiếp theo; lúc đó tôi còn không biết ông ấy là một trong những nhà phát triển Golang cốt lõi
Dù không cần phải làm vậy, ông ấy vẫn thật sự rộng lượng, và chuyện đó có lẽ sẽ luôn ở lại trong ký ức của tôi
Thật đáng nể khi ông ấy đã đầu tư nhiều thời gian đến vậy để xem ngôn ngữ được dùng trong thực tế ra sao và tìm ra các vấn đề cốt lõi
Tôi muốn nghe kỹ hơn về đoạn “Gooogle đã thay đổi, Go cũng đã thay đổi, và toàn bộ môi trường lập trình máy tính cũng đã thay đổi. Trong khoảng một năm qua, việc tôi không còn thật sự phù hợp với dự án Go của Google nữa đã trở nên rõ ràng. Đã đến lúc phải rời đi”
Có vẻ như đã có những thay đổi thực tế mà Ian nhận ra
Kiểu như “Hãy đưa Gemini vào lỗi trình biên dịch Go, nếu không thì rời đi”
Có vấn đề chống độc quyền, ban lãnh đạo tệ hại bán rẻ công ty vì lợi ích ngắn hạn, và một sự thay đổi rõ rệt từ một công ty công nghệ từng áp đảo trong thời gian dài thành một bản sao khác của Microsoft/IBM
Họ không còn là người dẫn dắt ngành nữa, chỉ chạy theo trào lưu và nhảy lên các con sóng, như cơn sốt AI
Họ khuất phục trước các chính phủ có lịch sử đáng ngờ và hỗ trợ những dự án có thể liên quan đến cái chết của thường dân
“Đừng trở nên xấu xa” nghe chẳng buồn cười nổi
Có lẽ ông ấy đã hoàn toàn chán ngấy những lời khoác lác liên tục và những lời dối trá phải gắng nuốt
Thời điểm nghỉ việc có lẽ cũng có thể đã được căn theo lịch vesting cổ phiếu hoặc ngày đáo hạn quyền chọn
Câu hỏi meta ở đây là Google của năm 2005 ngày nay là gì
Thật sự là OpenAI sao? Hay nó có tồn tại không?
Câu hỏi còn meta hơn là trạng thái Google mà nhiều kỹ sư nhớ như thời hoàng kim ấy thực ra đã kéo dài bao lâu
Công ty đó ra đời trong một thời kỳ mà công nghệ nền tảng trở nên mạnh hơn rất nhiều, và những công ty đầu tư sáng tạo vào công nghệ trong giai đoạn đó đã trở nên giàu có đến mức khó tưởng tượng
Tôi gia nhập Google năm 2022 rồi rời đi, và ngay cả dưới góc nhìn của một nhân viên mới, rõ ràng không chỉ thời hoàng kim đã kết thúc, mà cả thời kỳ hậu hoàng kim cũng đang lụi tàn
Bầu không khí không phải là “đổi mới liều lĩnh đã hết, nhưng hãy làm sản phẩm tốt nhất có thể”, mà là “đừng làm hỏng gì cả và nếu có thể thì vắt ra cải thiện 1–2%”
Google, giống như Bell Labs, là sản phẩm riêng của thời đại đó, và Bell Labs cũng không có đối ứng hiện đại
Có cơ hội để tạo ra nó
Tôi nghĩ vấn đề của thế hệ công ty này không phải là công nghệ mà là văn hóa
Văn hóa công nghệ đã bị chủ nghĩa tư bản tàn nhẫn lấp đầy quá nhiều, nên có lẽ chuyện như vậy sẽ không xảy ra nữa
Trước đây, dù sao vẫn có cảm giác họ có ý chí đổi mới và thử nghiệm
Giờ thì chỉ là tra dầu cho cỗ máy
Tức là đang cố dự đoán một ngành sẽ tăng trưởng vượt 1 nghìn tỷ USD, và một công ty sẽ cung cấp một công cụ nền tảng, phổ biến khắp nơi như tìm kiếm
Không định dựng thuyết âm mưu, nhưng tôi tò mò không biết việc Ian Hickson rời đội Google/Flutter [1] có liên quan gì không
Ông ấy đã nêu đích danh một vài người
“Nhiều vấn đề của Google ngày nay bắt nguồn từ việc Sundar Pichai thiếu năng lực lãnh đạo có tầm nhìn, và sự thờ ơ rõ rệt của ông ấy trong việc duy trì các chuẩn mực văn hóa của Google thời kỳ đầu. Một triệu chứng của điều đó là sự lan rộng của tầng lớp quản lý trung gian kém năng lực. Ví dụ Jeanine Banks quản lý một bộ phận bao gồm Flutter, Dart, Go, Firebase, v.v. theo cách khá tùy tiện. Bộ phận của bà ấy trên danh nghĩa có chiến lược, nhưng tôi không thể tiết lộ ngay cả khi muốn. Dù đã nghe bà ấy giải thích suốt nhiều năm, tôi vẫn thật sự hoàn toàn không thể hiểu bất kỳ phần nào có nghĩa là gì. Mức độ bà ấy hiểu các đội của mình đang làm gì, cùng lắm, là tối thiểu. Bà ấy thường đưa ra những yêu cầu hoàn toàn phi logic và không thể áp dụng. Bà ấy đối xử với kỹ sư như hàng hóa, phi nhân tính hóa họ, và điều chuyển mọi người bất chấp ý muốn của họ theo những cách chẳng liên quan gì đến năng lực. Bà ấy hoàn toàn không tiếp nhận phản hồi mang tính xây dựng. Theo đúng nghĩa đen là còn không thừa nhận nó. Tôi nghe nói các đội khác có những lãnh đạo khôn khéo chính trị hơn tôi nên đã học được cách ‘xử lý’ bà ấy: chỉ mớm đúng thông tin vào đúng thời điểm để bà ấy khỏi làm phiền. Từ góc nhìn của một người từng thấy Google ở thời kỳ tốt nhất, thực tại mới này thật đáng buồn”
[1]: https://ln.hixie.ch/?start=1700627373
Một lãnh đạo khác đã sa thải toàn bộ đội Python
Nhiều người trong số đó là contributor cốt lõi của Python; sau đó thay bằng một đội TypeScript có lương thấp hơn, rồi lại lấp chỗ bằng một đội mới ở khu vực có mức lương thấp hơn nữa
Cách họ giao tiếp là không thể hiểu nổi: nói đủ mọi thứ nhưng đồng thời chẳng nói gì cả
Những thông báo vừa chứa thông điệp về thay đổi kịch tính, vừa nói rằng mọi thứ vẫn như cũ, nên cực kỳ rối rắm
Giả thuyết của tôi là việc này không nhằm định hướng hay giải thích tầm nhìn hoặc mục tiêu, mà hội tụ thành một thứ để gây ấn tượng với các quản lý khác và định vị vị thế xã hội
Nó được dùng làm chất liệu để nhận công trạng trong các kỳ đánh giá hiệu suất
Một meme tôi nhớ là “nếu bạn không thể trả lời trong 5 giây mình thuộc đội nào, có thể bạn là Googler”
Các kỹ sư thì cực kỳ xuất sắc, nhưng hội chứng kẻ mạo danh cũng lan rộng, và cảm giác như mọi người bị bịt mắt rồi mò mẫm mỗi người một hướng
Tôi cũng không biết nên vận hành một công ty lớn thế nào, nhưng có lẽ một điểm khởi đầu tốt là dùng ngôn ngữ rõ ràng và mang tính mô tả
Rõ ràng là ngay cả các chuyên gia thông dịch tiếng doanh nghiệp cũng không tạo được một thực tại chung
Một trong những điều đáng sợ nhất về ngành của chúng ta là có thể sẽ không bao giờ có lại một công ty như Google thời kỳ đầu
Khi Pichai nắm quyền chỉ huy, lẽ ra họ nên đổi tên công ty
Vì nó đã biến thành một thứ không còn nhận ra được nữa
Phần lớn những người ta gặp nói rằng từng làm ở Google có lẽ là những người đã làm dưới thời ông ấy
Nếu các nhân sự cốt lõi của Google rời đi sau Chrome và giờ đến cả dự án golang, thì có vẻ khá rõ là ban lãnh đạo đang làm không tốt
Có lẽ họ đúng
Tôi không rành chính trị nội bộ Google, nhưng trong vài năm qua dường như khá thường xuyên có các bài viết và blog post của những nhân vật nổi tiếng bất ngờ thông báo nghỉ việc
Điều gì đứng sau xu hướng này?
Khi lần tới gốc rễ của mọi điều bất tiện cụ thể khiến tôi kiệt sức ở Google, cuối cùng đều dẫn đến đây, và vì thế tôi đã rời đi vào tháng 8
Khi một tổ chức còn tương đối nhỏ tuyển được những nhân tài hàng đầu và thành công, rồi tăng quy mô, mô hình đó không thể mở rộng nên sẽ đi xuống
Khi lên đến quy mô hàng chục nghìn người, đám ngốc gọi là “nhà quản lý chuyên nghiệp” bước vào, và trước hết tổ chức suy giảm về mặt trung bình
Vì trên đời không có đủ hàng chục nghìn người thật sự xuất sắc
Sau đó đám ngốc gây tác động tiêu cực khổng lồ, và tổ chức bắt đầu mục ruỗng
Khi họ thay đổi văn hóa theo hướng xấu, những người giỏi nhất sẽ rời đi, và chất lượng nhân viên trung bình còn giảm hơn nữa
Diễn ra một cuộc đua xuống đáy không phải về giá, mà về chất lượng nhân viên
Google nên tách Go thành một quỹ phi lợi nhuận và cấp 1 tỷ đô la để nó độc lập
Họ nên cầu xin Russ Cox điều hành nó như nhà độc tài nhân từ suốt đời, và hy vọng có thể tuyển lại Ian Lance Taylor