← Últimos artículos
🤖 AI

Escaping the Quicksand: A Call to Arms

Para abordar los riesgos crecientes de la deuda técnica exacerbados por el desarrollo impulsado por IA, el artículo aboga por un cambio pragmático de las especificaciones puramente basadas en prosa hacia una combinación flexible de pruebas, especificaciones ejecutables y pruebas formales, respaldada por una nueva infraestructura de semántica para crear bucles de retroalimentación más efectivos tanto para ingenieros humanos como de IA.

Autores originales: Peter Sewell, Jean Pichon-Pharabod

Publicado 2026-08-21
📖 7 min de lectura🧠 Análisis profundo

Autores originales: Peter Sewell, Jean Pichon-Pharabod

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina un mundo donde la maquinaria invisible de la vida moderna —nuestros bancos, hospitales, redes eléctricas y redes de comunicación— está construida sobre un cimiento que se hunde lentamente. Esta es la realidad que enfrenta la industria de la computación hoy en día. Durante décadas, la forma estándar de construir software ha sido escribir una descripción aproximada de lo que un programa debe hacer, luego escribir el código y, finalmente, probarlo ejecutándolo con diversas entradas para ver si falla. Este método, conocido como desarrollo de prueba y depuración (test-and-debug), ha permitido que la tecnología florezca, pero deja los sistemas plagados de fallos ocultos. Debido a que las descripciones originales suelen ser vagas y están escritas en lenguaje ordinario, no pueden ser verificadas por máquinas, y debido a que las pruebas solo pueden cubrir una fracción minúscula de los miles de millones de formas posibles en que un programa podría comportarse, muchos errores se filtran. A medida que la inteligencia artificial comienza a escribir más código, este ciclo amenaza con acelerarse, creando sistemas vastos y aún más complejos y frágiles que antes, construidos sobre un "arenas movedizas" de decisiones de diseño de hace décadas, tomadas cuando los ciberataques eran raros y la potencia de cálculo era escasa.

Dos investigadores, Peter Sewell de la Universidad de Cambridge y Jean Pichon-Farabd de la Universidad de Aarhus, argumentan que la industria ha estado atrapada en un bucle peligroso durante setenta y cinco años. Observan que, si bien nos hemos vuelto increíblemente hábiles escribiendo código, hemos descuidado las definiciones precisas de lo que ese código debe lograr. El enfoque actual depende de especificaciones en prosa —párrafos de texto que describen el comportamiento de un sistema—. Aunque estos son fáciles de leer para los humanos, son inherentemente ambiguos e incompletos. Un lector humano podría interpretar una oración de una manera, mientras que una máquina o un humano diferente la interpreta de otra. Debido a que estas descripciones no pueden ser probadas directamente por una computadora, los desarrolladores se ven obligados a adivinar cuál debería ser el comportamiento correcto, recurriendo a menudo a comprobaciones simples como "¿el programa se bloquea?" en lugar de verificar si el programa realmente está haciendo lo que debe. Esta brecha entre la intención escrita y el código real crea una enorme cantidad de deuda técnica, un costo oculto que se manifiesta como vulnerabilidades de seguridad y fallos del sistema que pueden ser explotados por atacantes.

Los autores sugieren que la solución no es abandonar las pruebas, sino cambiar la forma en que utilizamos las especificaciones. En lugar de escribir párrafos vagos, proponen crear especificaciones que sean ejecutables, lo que significa que están escritas en una forma que una computadora pueda ejecutar. Imaginen una especificación que actúe como un árbitro en vivo durante el proceso de desarrollo. A medida que se escribe o genera el código, esta especificación ejecutable se ejecuta junto con él, verificando instantáneamente si el comportamiento del código coincide con las reglas previstas. Si el código intenta hacer algo que la especificación prohíbe, el sistema lo señala de inmediato. Esto crea un ciclo de retroalimentación mucho más estrecho, permitiendo a los desarrolladores detectar errores conforme ocurren en lugar de semanas después. Este enfoque puede aplicarse de diferentes maneras: uno puede comenzar con el código y escribir una especificación que coincida con él, comenzar con una especificación y generar código que se ajuste a ella, o construir ambos de forma conjunta. La clave es que la especificación no es solo un documento para ser leído, sino una herramienta para ser utilizada.

Sin embargo, los investigadores reconocen que esto no es un interruptor que se pueda activar fácilmente. Para que esto funcione a gran escala, la comunidad informática necesita construir una nueva capa de infraestructura. Actualmente, no existen definiciones universalmente aceptadas y legibles por máquina para el comportamiento de muchas tecnologías fundamentales, como el lenguaje de programación C, el lenguaje Rust o las instrucciones que ejecutan los chips de computadora. Si bien algunos investigadores han creado con éxito estas definiciones para partes específicas del sistema, no existe un marco unificado que las conecte todas. Los autores señalan que construir esta infraestructura es un desafío de escala y cooperación. Requiere un esfuerzo masivo y coordinado de universidades, gobiernos y empresas tecnológicas para crear, validar y mantener estas definiciones precisas para todo el stack de la tecnología informática, desde el hardware hasta los servicios en la nube.

El artículo también aborda el papel de la inteligencia artificial. Los autores advierten que simplemente usar la IA para escribir más código sin estos mejores ciclos de retroalimentación solo empeorará el problema. La IA puede generar código más rápido que los humanos, pero si ese código se construye sobre cimientos inestables y se prueba solo con los métodos antiguos e ineficaces, simplemente creará sistemas más grandes con más errores ocultos. Por el contrario, si la IA se utiliza para ayudar a generar y verificar estas especificaciones ejecutables, podría convertirse en una poderosa herramienta para mejorar la calidad del software. Los autores vislumbran un futuro donde la IA ayude a crear especificaciones rigurosas, y donde esas especificaciones se utilicen para verificar que tanto el código escrito por humanos como el generado por IA sean correctos. Esto permitiría un aumento gradual de la confianza, comenzando con pruebas simples y avanzando hacia pruebas matemáticas de corrección más complejas, todo ello sin requerir que cada desarrollador se convierta en un matemático.

A pesar del camino claro a seguir, los autores argumentan que la industria se ha visto frenada por un desajuste de incentivos. Las empresas tecnológicas están motivadas para lanzar productos rápidamente para capturar cuota de mercado, mientras que los riesgos del fallo recaen en gran medida sobre la sociedad y los usuarios finales. Construir la infraestructura robusta necesaria para prevenir estos fallos es costoso y requiere tiempo, y ninguna empresa quiere asumir el costo total de solucionar problemas que afectan a todos. Los investigadores llaman a un esfuerzo colectivo, similar a los proyectos a gran escala vistos en la física o la biología, para financiar y coordinar la creación de esta infraestructura semántica. Sugieren que, si bien el costo es significativo, es una fracción mínima del gasto actual en inteligencia artificial y es esencial para asegurar el futuro de la computación. Sin este cambio, la industria permanece atrapada en un ciclo de construcción de sistemas cada vez más complejos sobre cimientos que son demasiado débiles para soportarlos, dejando a la sociedad vulnerable a un riesgo constante.

Los autores concluyen que las herramientas y los métodos para resolver este problema ya existen. Los investigadores han demostrado con éxito cómo definir el comportamiento de sistemas complejos y verificarlos con alta confianza. Lo que falta es la voluntad de llevar estos métodos a la práctica cotidiana y de construir la infraestructura compartida que los haga accesibles para todos. El artículo sirve como un llamado a la acción para la comunidad de investigación, los líderes de la industria y las agencias de financiación para colaborar en esta tarea. Al alejarse de las descripciones vagas y avanzar hacia especificaciones precisas y ejecutables, el mundo de la computación puede escapar de las arenas movedizas de la deuda técnica y construir un futuro que no solo sea más innovador, sino también fundamentalmente más seguro y confiable.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →