El comité directivo de GCC es demasiado optimista con el código generado por IA. Básicamente han decidido que, mientras un humano ponga su nombre en el commit, el origen de la lógica no importa. En cualquier otra parte de la pila de software, esa es una buena disposición. En un compilador, es una apuesta con la estabilidad de todo el ecosistema.
Los compiladores son la base de todo lo que construimos, una capa de abstracción tan profunda y frágil que un único puntero mal colocado en una pasada de optimización de GCC puede provocar un Heisenbug que acecha a un servidor de producción durante tres años antes de que alguien lo note. Este no es el lugar para una lógica “mayormente correcta”.
El núcleo de la nueva política es que se permite el código generado por IA, siempre que el contributor asuma la plena responsabilidad por su corrección. En papel, esto suena como una salvaguarda razonable. Si el código rompe la compilación o introduce una regresión, el humano que lo envía recibe las culpas. Pero esto es una ficción conveniente.
¿De verdad creemos que un contributor puede “asumir la responsabilidad” de una lógica que no derivó él mismo?
Todo el atractivo de usar un LLM para C++ complejo es que el LLM se encarga del trabajo cognitivo pesado. Si un desarrollador usa una herramienta para generar un algoritmo complejo de tree-shaking o una nueva pasada de optimización, probablemente lo haga porque no tiene el ancho de banda (ni la experiencia) para escribirlo desde cero. Pedirle a esa persona que luego “verifique” el resultado es como pedirle a un chef que garantice la calidad de una salsa precocinada que compró en un frasco: puede probarla, pero no puede explicarte exactamente cómo funcionó la química de la reducción. Es esencialmente lo mismo que un abogado que presenta un escrito redactado por un bot y afirma que lo “revisó”; ha comprobado que parece un escrito, pero no ha realizado el razonamiento legal real.
Es una política perezosa para una herramienta crítica.
La verdadera fricción no está en la escritura; está en la revisión. Los mantenedores de GCC ya están sobrecargados de trabajo y mal pagados (generalmente en la moneda del “espíritu de comunidad”). Ahora tienen que lidiar con una oleada de contribuciones que parecen perfectas superficialmente pero que pueden contener errores sutiles y no evidentes.
La IA es excepcionalmente buena escribiendo código que parece escrito por un ingeniero senior. Sigue las guías de estilo, usa las convenciones de nomenclatura correctas e imita la arquitectura de los archivos circundantes. Esto crea una trampa psicológica peligrosa para el revisor. Cuando el código parece “correcto”, el cerebro humano tiende a pasar página rápidamente. Asumimos que la lógica sigue el patrón.
Pero la IA no sigue la lógica; sigue la probabilidad. Podría producir un fragmento que funcione para el 99% de los casos pero falle en un caso límite específico que involucre precisión de punto flotante o alineación de memoria: exactamente el tipo de cosas que GCC debería manejar con precisión absoluta. (Y probablemente no lo haga, si dejamos de valorar la comprensión profunda sobre el rendimiento rápido).
Esto añade una carga mental masiva al proceso de revisión. Cada línea de código asistido por IA debe tratarse como una mina potencial, requiriendo un nivel de escrutinio que efectivamente cancela las ganancias de “productividad” que el contributor obtuvo al usar la IA en primer lugar. Simplemente estamos trasladando el trabajo del escritor al revisor.
Hay un riesgo a largo plazo que el comité directivo no está mencionando: la atrofia de la experiencia. Si normalizamos el acto de enviar código que el autor no comprende del todo, dejamos de formar a la próxima generación de ingenieros de compiladores.
El proceso de luchar con una optimización compleja—las horas de fracaso, los mergullos profundos en el manual, el refinamiento iterativo—es exactamente cómo uno se convierte en experto. Si evitas esa lucha mediante un prompt a un modelo, no solo estás ahorrando tiempo; estás saltándote la educación. Eventualmente, llegaremos a un punto donde no queden humanos que comprendan realmente los internos del compilador lo suficiente como para revisar el trabajo de la IA. Estaremos en un bucle donde la IA sugiere un cambio y un humano, que ha perdido la capacidad de detectar el defecto sutil, lo aprueba porque parece profesional.
Para el cuarto trimestre de 2025, veremos un CVE de alta gravedad rastreado hasta un commit escrito por IA que evitó la revisión porque “parecía” correcto.
El comité directivo intenta evitar ser ludditas, lo cual es un objetivo justo. Pero al tratar a la IA como simplemente otra herramienta en el kit del desarrollador, están ignorando el hecho de que la IA es una herramienta que se especializa en falsedades plausibles. En el mundo de GCC, la plausibilidad no vale nada. Solo la corrección importa.