GNOME se planta ante el aluvión de código generado por IA

La inteligencia artificial está transformando el desarrollo de software, pero también está generando nuevos problemas para los proyectos de código abierto. Uno de los casos más recientes lo protagoniza GNOME, cuyos revisores llevan meses lidiando con una creciente oleada de extensiones creadas mediante IA que no cumplen los estándares mínimos de calidad.

Luego de endurecer las normas de revisión a finales del año pasado, el proyecto ha optado ahora por una estrategia poco habitual: escribir una guía dirigida directamente a los modelos de inteligencia artificial, con el objetivo de reducir el número de envíos defectuosos antes incluso de que lleguen a los revisores.

Un problema que no deja de crecer

Las extensiones oficiales de GNOME Shell se distribuyen a través de extensions.gnome.org (EGO), un repositorio donde cada envío pasa por una revisión manual antes de ser publicado.

En diciembre, el proyecto actualizó sus directrices para rechazar expresamente aquellas extensiones generadas íntegramente mediante inteligencia artificial cuando el desarrollador no era capaz de explicar su funcionamiento o mantener el código.

La decisión no prohibía el uso de IA como herramienta de apoyo. GNOME sigue permitiendo emplearla para aprender, obtener sugerencias o completar pequeñas porciones de código. El problema aparece cuando una extensión ha sido creada prácticamente en su totalidad por un modelo de IA y su autor no comprende realmente cómo funciona.

Aunque varios meses después, la situación apenas ha mejorado.

Una guía escrita para las inteligencias artificiales

Ante la continua llegada de extensiones con los mismos errores, Javad Rahmatzadeh, uno de los responsables de las revisiones en EGO y autor de la normativa original, decidió cambiar de estrategia.

En lugar de limitarse a rechazar cada envío acompañado de una explicación, redactó un documento pensado específicamente para que los propios asistentes de IA puedan generar código de mayor calidad cuando los desarrolladores los utilicen.

La iniciativa busca evitar que los mismos fallos se repitan una y otra vez, reduciendo así la carga de trabajo de los revisores.

Los errores que más repiten los modelos de IA

Según explica GNOME, muchas de las extensiones generadas automáticamente comparten exactamente los mismos problemas.

Entre los más habituales se encuentran:

  • Recursos que no se liberan correctamente al cerrar la extensión.
  • Temporizadores (timeouts) que permanecen activos innecesariamente.
  • Señales (signals) que nunca se desconectan.
  • Widgets que no se destruyen siguiendo el orden adecuado.
  • Código excesivamente complejo para tareas muy simples.
  • Comprobaciones redundantes sobre funciones cuya existencia ya está garantizada.
  • Múltiples bloques try/catch sin ninguna utilidad real.

Otro patrón muy frecuente es la creación de variables booleanas como _destroyed para impedir que determinados métodos vuelvan a ejecutarse, una práctica que los revisores consideran innecesaria. En su lugar, recomiendan eliminar correctamente las referencias al objeto una vez ejecutado el método destroy().

Menos compatibilidad universal y más código mantenible

Uno de los problemas detectados por el equipo es que muchos modelos de IA intentan generar código compatible con numerosas versiones distintas de GNOME Shell al mismo tiempo.

Aunque la intención pueda parecer positiva, el resultado suele ser un código mucho más complejo y difícil de mantener.

La recomendación de los revisores es sencilla: desarrollar cada extensión pensando únicamente en una versión concreta de GNOME, en lugar de intentar cubrir todas las posibles configuraciones existentes.

También piden una mejor organización del código

La guía no solo aborda errores técnicos.

GNOME recomienda además que las extensiones estén mejor estructuradas, separando la lógica en distintos archivos en lugar de concentrar todo el proyecto en un único archivo principal.

También desaconseja incluir funciones vacías o código de relleno simplemente para completar una implementación antes de enviarla a revisión.

El objetivo es facilitar tanto el mantenimiento como la revisión del código por parte del equipo encargado de aprobar las extensiones.

Un aviso para quienes generan código con IA

Quizá la recomendación más curiosa de la nueva guía sea una dirigida directamente a los asistentes de inteligencia artificial.

GNOME propone que cualquier extensión generada mediante IA para uso exclusivamente personal incluya un comentario similar al siguiente:

// Generated with AI for personal use.
// Do NOT upload to extensions.gnome.org (EGO) unless you understand JavaScript
// and can maintain this code.

Con este mensaje se pretende recordar que el código generado automáticamente no debería publicarse en el repositorio oficial si quien lo envía no es capaz de comprenderlo, depurarlo y mantenerlo a largo plazo.

El verdadero desafío del software libre en la era de la IA

El caso de GNOME refleja un problema cada vez más frecuente en numerosos proyectos de código abierto.

La facilidad para generar miles de líneas de código mediante inteligencia artificial también ha incrementado el volumen de contribuciones que requieren revisión humana. Cuando esas contribuciones presentan errores repetitivos, malas prácticas o simplemente no funcionan correctamente, la carga sobre los mantenedores aumenta de forma considerable.

Lejos de rechazar la inteligencia artificial, GNOME apuesta por un uso responsable de estas herramientas. La nueva guía pretende precisamente eso: que los asistentes generen código de mayor calidad y que quienes lo utilicen comprendan realmente lo que están desarrollando.

En un momento en el que la IA forma parte del día a día de muchos programadores, el desafío ya no consiste únicamente en escribir código más rápido, sino en garantizar que ese código sea comprensible, mantenible y útil para toda la comunidad.

Vistas: 2
Scroll al inicio