Al dejar Google
(airs.com)- Ian Lance Taylor dejó Google tras 19 años de trabajo, y dedicó la mayor parte de ese tiempo al desarrollo del lenguaje de programación Go
- Go comenzó en el otoño de 2007 con Rob Pike, Ken Thompson y Robert Griesemer, y Taylor se unió en junio de 2008, casi al mismo tiempo que Russ Cox
- Contra las expectativas iniciales, Go fue más allá de ser un experimento de ideas simples y se consolidó como un lenguaje de programación de propósito general que los desarrolladores eligen según la situación
- Taylor participó en trabajos fundamentales del lenguaje y del ecosistema de Go, como el frontend de Go para GCC, el sistema de build interno de Google, el soporte para SWIG, la gestión del equipo y propuestas de genéricos
- Como Google, Go y el entorno de programación cambiaron, Taylor concluyó que ya encajaba menos con el proyecto de Go dentro de Google, y espera volver a contribuir a Go después de tomarse un descanso
19 años en Google y su llegada a Go
- Ian Lance Taylor dejó la empresa después de 19 años trabajando en Google
- Pasó la mayor parte de ese tiempo trabajando en el lenguaje de programación Go
- Go comenzó en el otoño de 2007 con Rob Pike, Ken Thompson y Robert Griesemer
- Taylor se unió al equipo de Go en junio de 2008, y Russ Cox también se sumó en una época similar
- Considera que tuvo la suerte de poder trabajar con personas extraordinarias y en proyectos interesantes
El uso de Go se amplió más de lo esperado
- A Taylor le sorprendió que Go se usara mucho más ampliamente de lo que había imaginado a lo largo de los años
- Go ahora ha llegado a ocupar el lugar de un lenguaje de programación de propósito general que los desarrolladores pueden elegir cuando lo necesiten
- La expectativa inicial no era tanto una adopción masiva de Go en sí, sino más bien servir como un ejemplo de ideas útiles que otros lenguajes y entornos de programación pudieran tomar como referencia
Trabajo en compiladores y especificación del lenguaje
- El primer trabajo de Taylor en Go fue agregar un frontend de Go al compilador GCC
- En ese momento, el proyecto Go ya contaba con un compilador existente basado en el compilador C de Inferno
- La existencia simultánea de ambos compiladores ayudó a definir el lenguaje con mayor claridad
- Cada vez que el comportamiento difería, había que pulir la especificación y decidir cuál era el comportamiento correcto
Su rol dentro del equipo y la introducción de genéricos
- Taylor asumió por iniciativa propia el papel de revisar el proyecto en su conjunto y buscar áreas donde hiciera falta ayuda dentro del equipo de Go
- Durante los primeros años, añadió soporte para Go al sistema de build interno de Google y a la herramienta SWIG
- También fue manager del equipo durante varios años
- Desde los inicios de Go, los desarrolladores pidieron soporte para algún tipo de genéricos o parametrización de tipos
- Taylor desarrolló junto con Robert Griesemer varias propuestas de cambios al lenguaje
- Los genéricos se añadieron al lenguaje en Go 1.18 en 2022
Evaluación de su forma de trabajar
- Taylor considera que su enfoque tenía tanto ventajas como desventajas
- La ventaja era que podía identificar rápidamente los problemas que la gente estaba enfrentando en ese momento y los que probablemente enfrentarían pronto, y ayudar a encaminarlos hacia una solución
- En cambio, tenía la limitación de detectar tarde ideas cuya necesidad aún no se había hecho evidente porque todavía no se habían intentado
- Por ejemplo, el proxy de módulos de Go
- Por ejemplo, la base de datos de vulnerabilidades de Go
Motivos de su salida y planes a futuro
- Taylor evalúa que su forma de trabajar, en términos generales, ayudó a construir un proyecto exitoso
- Pero Google, Go y el entorno de la programación informática han cambiado
- Considera que, durante el último año aproximadamente, se hizo evidente que ya no encajaba bien con el proyecto de Go dentro de Google
- Su interés por Go sigue intacto
- No cree que el lenguaje Go esté terminado
- Ningún lenguaje de programación permanece en un estado finalizado
- El entorno de programación sigue cambiando, y si un lenguaje no evoluciona, desaparece
- En un lenguaje como Go, que tiene una biblioteca estándar considerable, esa biblioteca estándar también debe adaptarse a las nuevas necesidades de los programadores
- Taylor planea tomarse un descanso por un tiempo y espera poder volver a contribuir a Go en el futuro
1 comentarios
Opiniones en Hacker News
Es difícil exagerar la magnitud de las contribuciones de Ian a la comunidad de Go y a la comunidad de programación en general.
No solo creó gccgo, sino también el enlazador gold; escribió muchísimo sobre toolchains de compiladores y ha mantenido grandes áreas del codebase de gcc [0].
Intercambié correos con él algunas veces y, sin importar cuáles fueran sus responsabilidades y prioridades en Google, siempre respondía, revisaba parches y daba feedback muy perspicaz.
Tengo sentimientos encontrados sobre el lenguaje Go en sí, pero Go sin Ian claramente va a empeorar.
El equipo inicial de Go tenía una vibra tipo Bell Labs: un pequeño grupo de personas que entendían las computadoras a fondo hizo todo: el ensamblador, el enlazador, dos compiladores, la especificación del lenguaje, el generador de documentación, el sistema de build y una biblioteca estándar enorme.
Ahora, a medida que Go se vuelve cada vez más importante para Google y entran las prácticas estándar de los proyectos de software a gran escala, parece haberse convertido en una cultura corporativa más plana.
Supongo que ese cambio cultural es lo que Ian insinuó en su mensaje, aunque me da curiosidad cuál fue el punto de inflexión concreto que lo llevó a irse.
Espero que Ian pueda descansar lo suficiente, y quiero seguir de cerca cualquier proyecto que emprenda después.
[0]: https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS
Dicho eso, me da curiosidad para qué usan gcc-go en la práctica las personas u organizaciones.
Cuando trabajaba en Google, Ian Lance Taylor estaba en el grupo de revisores de código que podían asignarse al azar.
Era educado, firme y comunicaba muy bien la información.
Es algo que habla bien tanto de Taylor como del proyecto, y este tipo de revisión parece una versión del consejo de YC a los fundadores de hacer soporte al cliente directamente.
Tal vez sea una impresión superficial, pero era bastante emocionante ver sus iniciales aparecer en mis code reviews.
Gracias por todo lo que hizo por golang.
Aprendí una lección de vida importante: es mejor ser considerado educado, amable y buena persona que inteligente, un desarrollador 10x o competente.
Educado, firme, informativo, y agregaría también curioso.
La experiencia de contribuir al proyecto fue muy buena, e Ian fue una gran parte de eso.
En un proyecto grande como Go, eso dice mucho.
También hice legibilidad de Python en Google, pero el enfoque de “traes un CL enorme y, si al final del proceso lo dejas bien, listo” no me pareció tan útil como el proceso de Go.
Me alegra que el equipo de Go haya creado sus propias reglas, y a mí también me ayudó.
Aunque claro, no se sentía igual cuando me llamaban a medianoche y pensaba: “solo tengo que hacer check-in de este código y volver a dormir” ;)
Incluso intenté rebatir uno de sus comentarios.
Se sintió bastante genial que alguien que realmente sabe lo que hace le pusiera el sello de aprobación a mi trabajo.
Si no lo estoy recordando mal, fue realmente impresionante.
El pasaje “Gooogle [sic] cambió, Go cambió y todo el entorno de la programación de computadoras cambió. En el último año más o menos quedó claro que ya no encajo bien en el proyecto Go de Google. Es hora de irme” es bastante sorprendente.
Esas tres frases podrían haberse omitido fácilmente o reemplazado por palabras vacías, así que el hecho de que las haya escrito así sugiere que aquí hay algo de peso.
La presión desde management aumentó muchísimo y la confianza se redujo muchísimo.
A muchos L7+ también se les hacía sentir que debían trabajar en algo relacionado con AI para tener “suficiente impacto”.
A medida que aumentó la presión, también crecieron las peleas territoriales entre ellos: ya no bastaba con ser un manager de confianza, sino que tu nombre tenía que estar arriba de todo en los documentos relevantes y no podía estar el de un colega.
Antes de 2023, casi solo veía que los L7 y L8 con los que trabajaba se iban de Google porque encontraban nuevas oportunidades interesantes o se jubilaban.
Ahora, la mayoría de las personas que se van en esos niveles lo hacen porque están hartas de Google.
Es un desastre.
Hoy, las grandes empresas tecnológicas son simplemente lugares a los que la gente va a ganar dinero, y no necesariamente les interesa una visión de largo plazo.
La mayoría está llena de gente con muy poca pasión por la ingeniería o las computadoras, formada a la fuerza con entrenamiento tipo academia.
Sin imaginación, sin pensamiento fuera de la caja; se preparan memorizando para entrar, luego reciben un PIP o los despiden y repiten lo mismo en otra gran empresa.
Son del tipo “TC o lárgate”.
Quizás tengas más suerte en una startup como la Google de ayer.
El foco que baja desde el CEO está puesto por completo en rentabilidad, ingresos y comercialidad.
Creo que esta persona ya lo escribió antes así:
“Muchos de los problemas actuales de Google provienen de la falta de liderazgo visionario de Sundar Pichai y de su aparente desinterés por mantener las normas culturales de la Google inicial”
En 2016, cuando estaba en Google, empecé en un equipo donde todos usaban Golang.
Como primer proyecto estaba creando un servicio nuevo y recibí varias veces de Ian la aprobación de legibilidad.
Una vez recibí una aprobación con una solicitud de seguimiento, pero no la vi y terminé incorporando el cambio.
Ian volvió a contactarme para pedirme que hiciera ese trabajo de seguimiento, y en ese momento ni siquiera sabía que él era uno de los desarrolladores principales de Golang.
Fue realmente generoso, aunque no tenía por qué serlo, y creo que siempre voy a recordar ese episodio.
Es realmente impresionante que haya invertido tanto tiempo en ver cómo se usa el lenguaje en la práctica y en detectar los problemas centrales.
Me gustaría escuchar con más detalle el párrafo que dice: “Gooogle cambió, Go cambió y todo el entorno de la programación informática también cambió. En el último año, más o menos, quedó claro que ya no encajo bien en el proyecto Go de Google. Es hora de irme”.
Parece que hubo cambios reales que Ian percibió.
Algo como: “Pongan Gemini en los errores del compilador de Go, o váyanse”.
Están los problemas antimonopolio, un liderazgo pésimo que vendió la compañía por ganancias de corto plazo, y un cambio evidente: de una empresa tecnológica dominante durante mucho tiempo a otro clon de Microsoft/IBM.
Ya no es líder de la industria; solo sigue modas y se sube a la ola, como con la moda de la IA.
Se doblega ante gobiernos con historiales cuestionables y apoya proyectos que podrían estar vinculados con la muerte de civiles.
“No seas malvado”, qué chiste.
Imagino que habrá quedado completamente harto de la fanfarronería constante y de las mentiras que lo obligaban a tragarse.
El momento de su salida quizá también coincidió con la compensación en acciones o el vencimiento de opciones.
La pregunta meta aquí es qué sería hoy el Google de 2005.
¿De verdad es OpenAI? ¿Existe siquiera?
Una pregunta aún más meta es cuánto duró realmente ese estado de Google que muchos ingenieros recuerdan como una época dorada.
Esa compañía nació en una época en la que la tecnología base se estaba volviendo mucho más poderosa, y las empresas que invirtieron creativamente en tecnología durante ese periodo se volvieron ricas a un nivel difícil de imaginar.
Me sumé a Google en 2022 y luego me fui, y aun para alguien recién llegado era evidente que la época dorada no solo había terminado, sino que incluso la era posterior a esa época dorada también se estaba apagando.
El ambiente no era “la innovación temeraria se acabó, pero hagamos que el producto sea lo mejor posible”, sino “no rompan nada y, si se puede, expriman una mejora del 1 o 2%”.
Google fue, como Bell Labs, un producto único de su época, y Bell Labs tampoco tiene un equivalente moderno.
Hay una oportunidad de crearlo.
Creo que el problema de las empresas de esta generación no es la tecnología, sino la cultura.
La cultura tecnológica está tan saturada de capitalismo despiadado que no creo que vuelva a ocurrir algo así.
Antes, al menos se sentía que había voluntad de innovar y experimentar.
Ahora se trata solo de engrasar la máquina.
Es como intentar predecir una industria que crecerá hasta superar el billón de dólares y una empresa que ofrecerá una herramienta tan fundamental y ubicua como la búsqueda.
No quiero armar una teoría conspirativa, pero me pregunto si esto está relacionado con la salida de Ian Hickson del equipo de Google/Flutter [1]
Él mencionó específicamente algunos nombres
“Muchos de los problemas actuales de Google se originan en la falta de liderazgo visionario de Sundar Pichai y en su aparente desinterés por mantener las normas culturales del Google inicial. Uno de los síntomas es la proliferación de una capa media de gerencia incompetente. Por ejemplo, Jeanine Banks dirige una división que incluye, de forma algo arbitraria, Flutter, Dart, Go, Firebase, entre otros. Su división tiene nominalmente una estrategia, pero no podría filtrarla aunque quisiera. Durante años la escuché explicarla y, aun así, literalmente nunca pude descifrar qué quería decir ninguna parte. Su nivel de comprensión sobre lo que hacen sus equipos es, en el mejor de los casos, mínimo. A menudo hace pedidos completamente incoherentes e inaplicables. Trata a los ingenieros como mercancía, de forma deshumanizante, y reubica a la gente en contra de su voluntad de maneras que no tienen nada que ver con sus capacidades. No es capaz de recibir feedback constructivo en absoluto. Literalmente ni siquiera lo reconoce. Me han dicho que otros equipos, con líderes políticamente más hábiles que yo, aprendieron a ‘manejarla’: darle solo la información adecuada en el momento adecuado para que no moleste. Para alguien que vio al mejor Google, esta nueva realidad es deprimente”
[1]: https://ln.hixie.ch/?start=1700627373
Otro ejecutivo despidió a todo el equipo de Python
Muchos de ellos eran contribuidores principales de Python; los reemplazó por un equipo de TypeScript con sueldos más bajos y luego volvió a cubrir puestos con un equipo nuevo en regiones con sueldos aún más bajos
Su forma de comunicarse es incomprensible: dicen todo y al mismo tiempo no dicen nada
Es muy confuso cuando salen anuncios que transmiten a la vez cambios dramáticos y el mensaje de que todo sigue igual
Mi teoría es que eso no está pensado para fijar una dirección ni explicar una visión u objetivos, sino que converge en algo para impresionar a otros gerentes y posicionarse socialmente
Sirve como material para adjudicarse méritos en las evaluaciones de desempeño
Uno de los memes que recuerdo era: “si no puedes responder en 5 segundos a qué equipo perteneces, quizás eres Googler”
Los ingenieros son extraordinariamente buenos, pero el síndrome del impostor también está muy extendido, y se siente como si todos caminaran a tientas, con los ojos vendados, en direcciones distintas
No sé cómo se debe dirigir una empresa grande, pero un buen punto de partida parecería ser usar lenguaje claro y descriptivo
Evidentemente, ni siquiera los expertos en traducir jerga corporativa están logrando construir una realidad compartida
Una de las cosas que más me asustan de nuestra industria es que quizá nunca volvamos a tener una empresa como el Google inicial
Cuando Pichai tomó el mando, deberían haber cambiado el nombre de la empresa
Porque se transformó en algo irreconocible
La mayoría de la gente que uno conoce y que dice haber trabajado en Google probablemente trabajó bajo su régimen
Si personal clave de Google se está yendo no solo de Chrome sino ahora también del proyecto golang, parece bastante claro que la dirección no está haciendo bien las cosas
Probablemente tenga razón
No sé mucho sobre la política interna de Google, pero en los últimos años parecen bastante frecuentes los posts y entradas de blog en los que figuras conocidas anuncian salidas repentinas
¿Qué habrá detrás de esta tendencia?
Al rastrear la raíz de todas las molestias concretas que me agotaban en Google, terminaba llegando a esto, y por eso me fui en agosto
Cuando una organización relativamente pequeña contrata a los mejores talentos, tiene éxito y luego aumenta sus números, ese modelo no escala, así que empieza a decaer
Cuando llega a decenas de miles de personas, entran los idiotas de la “gerencia profesional” y la organización primero se deteriora en promedio
Porque no hay suficientes personas realmente brillantes en el mundo como para llenar decenas de miles de puestos
Después, los idiotas empiezan a tener un enorme impacto negativo y la organización comienza a pudrirse
Cuando cambian la cultura para peor, los mejores se van y el nivel promedio de los empleados baja aún más
Se produce una carrera hacia el fondo, no en precio sino en calidad de los empleados
Google debería separar Go en una fundación sin fines de lucro, darle 1.000 millones de dólares e independizarlo
Deberían rogarle a Russ Cox que lo dirija de por vida como dictador benevolente y esperar poder volver a contratar a Ian Lance Taylor