
Aunque no se descarta el uso de IA para programar, Linus Torvalds pone un freno al uso masiva de esta herramienta para mejorar a Linux | cortesía de la imagen Computer Hoy.
Hola que tal a todos, sean bienvenidos a un nuevo artículo de su servidor. En varias ocasiones hemos hablado de Linux ("Hace 34 años fue lanzado Linux", "Distribuciones Linux que se parecen a Windows", "Cuando Mandrake Linux fue demandado y perdió su nombre" y más recientemente de Winux en un video reportaje sobre su uso.
Aunque Linux es completamente libre, cualquiera puede tomar el código fuente y adaptarlo a lo que necesite (siempre y cuando respete las licencias de uso) lo cierto es que no es tan sencillo enviar cambios al código fuente, me explico. A diferencia de otros sistemas donde el código fuente está disponible en la red en algún repositorio y cualquier aportación que hagamos si se aprueba por los administradores pasará a la rama principal, que a su vez sirve para crear las versiones compiladas, con Linux digamos... no es tan sencillo.
El proyecto está organizado en subsistemas, cada uno con mantenedores responsables de revisar, probar e integrar cambios. Los desarrolladores suelen enviar sus propuestas a estos mantenedores, quienes evalúan la calidad técnica del parche antes de aceptarlo en sus propios repositorios. Finalmente, los cambios ascienden por una cadena de confianza hasta llegar a Linus Torvalds, responsable del árbol principal del kernel. Los mantenedores tienen una gran autonomía pero la integración final en la versión oficial depende de la aprobación de Linus.
Y este suele ser el mayor pero que vamos a toparnos, si considera que un cambio no cumple los requisitos de calidad, diseño o estabilidad, puede rechazarlo o solicitar modificaciones antes de que sea incorporado al kernel principal, aunque no siempre de la manera más respetuosa posible. Si hay algo que caracteriza a Torvalds es que no siempre te dice de la mejor manera posible porque el cambio fue rechazado; suele despotricar contra quien manda código que no le convence, no ve la utilidad o simplemente es de mala calidad.
Torvalds vs la IA al codificar el fuente de Linux:
Tenemos aquí entonces otro episodio en la vida de Torvalds contra quienes quieren hacer aportes a Linux: Linus Torvalds, creador de Linux, expresó su preocupación por el uso indiscriminado de la inteligencia artificial en el desarrollo y mantenimiento del kernel de Linux. Aunque reconoce que estas herramientas pueden ser útiles para ayudar a los programadores a detectar errores, generar código y acelerar tareas complejas, considera que su uso sin supervisión humana está provocando problemas cada vez más graves.
La situación se hizo evidente durante las pruebas de Linux 7.0 y posteriormente en Linux 7.1 (un agradecimiento a Computer Hoy por la noticia), cuando los equipos encargados de la seguridad comenzaron a recibir una cantidad inusualmente alta de reportes de posibles vulnerabilidades. Sin embargo, la mayoría de estos informes resultaron ser falsos positivos, errores irrelevantes o problemas que ya habían sido identificados y corregidos anteriormente. Es decir, los programadores que usan IA para analizar módulos existentes en Linux están reportando erróneamente problemas que no existen.
Según Torvalds, muchos usuarios están utilizando herramientas de IA para analizar el código fuente y enviando los resultados directamente a los canales de seguridad sin realizar una revisión previa y si el mantenedor no tiene suficiente cuidado pasará el código fuente a la revisión final con Torvalds. Esto obliga a los mantenedores del proyecto a invertir tiempo y recursos en verificar cada reporte, incluso cuando finalmente se demuestra que no existe ningún problema real, además de llegar muchos reportes duplicados pues varios desarrolladores que usan IA para codificar pueden reportar el mismo problema, aunque este no exista realmente.
Por lo anterior, para enfrentar esta situación hay cambios en Linux: el código desarrollado con asistencia de IA deberá identificarse mediante etiquetas específicas que indiquen claramente su origen. Además, los reportes de vulnerabilidades detectadas exclusivamente por herramientas automatizadas dejarán de tratarse como información confidencial y serán enviados a foros públicos para que la comunidad pueda analizarlos y filtrarlos.
Torvalds aclaró que no está en contra de la inteligencia artificial pero insiste (igualmente, no de la manera más suave posible) que debe utilizarse con criterio. Considera que la IA debe servir como apoyo para los desarrolladores, no como sustituto del análisis y juicio humano.
¿Qué está pasando con la IA?
Los programadores que suelen apoyarse mayormente en alguna herramienta de IA para codificar, se les suele llamar "vibe coders". No es malo apoyarse en herramientas de este tipo, pero, un programador debe usar sus habilidades aprendidas durante su formación, no delegar totalmente el desarrollo a una máquina que no siempre entiende el contexto con el que se está trabajando.
Y si a eso le sumamos que el programador vibe coder no revisa nada, basta con que compile el programa y lo envía sin hacer revisiones minuciosas del código y de los resultados obtenidos tenemos un tremendo problema. La IA no es perfecta, es una herramienta útil que ayuda a agilizar el proceso de codificación, encontrar errores más fácilmente, etc; pero delegar el 100% de la programación o buena parte de ella con poca o nula supervisión del programador es la receta para el desastre.
Conclusiones:
No es malo apoyarse en herramientas de IA para codificar, pero el programador debe poner a funcionar su cerebro y tener el mando del trabajo que se está realizando. La IA será su asistente, no su motor, la IA puede ayudar a crear código más rápido, encontrar errores que a veces no son sencillos de encontrar, pero delegar el 100% de la codificación (o un porcentaje muy elevado) no es buena idea, "¿porque no?".
Porque la IA es imperfecta, en ella aplica la expresión "si algo no existe lo inventamos" porque un motor IA debe dar un resultado, se prioriza un resultado acertado o esperado a decir "no sé". Eso trae como consecuencia que la IA "alucine", es decir, genere situaciones que no existen, que estén sesgadas porque tiene que dar un resultado sí o sí (anexo al final de este artículo un video que explica esta situación).
Pues ya tenemos un freno a los programadores 100% vibe coders, Linux no es el único caso donde se ha dicho que no al código masivo generado con IA, otros proyectos como RPCS3, el emulador de PlayStation 3, Gentoo y hasta la propia Microsoft han tenido que salir a meter un alto al abuso de esta herramienta en el desarrollo de sistemas.
"¿Qué podemos concluir entonces?", que la IA es una herramienta que debe de usarse con prudencia y buen juicio, el programador debe usar las habilidades aprendidas, debe estar al mando del desarrollo del proyecto y apoyarse en la IA cuando sea necesario, no que esta esté al frente y el programador solo se limite a copiar y pegar y compilar.