Russ Cox, responsable principal del desarrollo de Go durante una década, explica que el lenguaje nació en 2007 para responder a los problemas de ingeniería de Google: grandes bases de código, miles de ingenieros, redes de máquinas y procesadores multinúcleo. Go fue diseñado desde cero para mejorar la gestión de dependencias, la compilación y la recolección de basura de baja latencia. Cox vincula su expansión con la generalización de la computación en la nube, el mismo entorno para el que se concibió el lenguaje.
Entre las lecciones que destaca, Cox sostiene que simplificar los problemas suele producir soluciones más fáciles de mantener y escalar que abordar la complejidad con sistemas complejos. En Go, la prohibición de dependencias cíclicas entre paquetes permite compilaciones y análisis más rápidos. También diferencia la programación de la ingeniería de software: esta última exige, pruebas, seguimiento de errores, módulos y patrones de diseño que permitan mantener un sistema durante años y entre varios equipos.
Las pruebas, afirma, sirven principalmente para proteger el comportamiento del código en el futuro, no solo para comprobar su funcionamiento actual. Sobre la inteligencia artificial, prevé una transformación acumulativa mediante pequeños avances, no un salto repentino. Considera que los fundamentos de la ingeniería siguen vigentes, pero advierte que los agentes de IA carecen de la memoria persistente y la comprensión global que los equipos humanos desarrollan al mantener un programa. Para Cox, esa ausencia puede generar código funcional, aunque más complejo de lo necesario.
