El «fin de la programación» se parecerá mucho a programar (2023)

Las afirmaciones de que la IA traerá un «fin de la programación» inminente provocan reacciones encontradas, y muchos ingenieros sostienen que los modelos de lenguaje actuales son asistentes potentes pero están lejos de reemplazar a los desarrolladores humanos. Los comentaristas señalan desafíos persistentes en torno a requisitos ambiguos, mantenimiento, responsabilidad, seguridad y casos límite del mundo real, comparando el entusiasmo actual con oleadas anteriores de UML, herramientas no-code y desarrollo externalizado que prometieron eliminar a los programadores pero en realidad solo cambiaron su forma de trabajar. El consenso emergente es que la IA se encargará cada vez más del código repetitivo y rutinario, mientras que los humanos se centrarán más en la especificación, las pruebas, la arquitectura y la supervisión, en lugar de desaparecer del proceso.

Alcance del «fin de la programación»

  • Muchos sostienen que «no programar» significaría que las IAs manejarían de forma independiente tareas de extremo a extremo (correos electrónicos, APIs, contratar otras IAs, etc.), con los usuarios emitiendo solicitudes en lenguaje natural como «muéstrame mis mejores clientes», sin código explícito ni interfaces.
  • Otros creen que el «fin» simplemente desplaza la programación a un lenguaje a medias natural y a medias formal, o a especificar reglas, pruebas y requisitos en lugar de escribir funciones.

Realidad actual y a corto plazo

  • Hoy en día, los LLM se consideran:
    • Autocompletado potente para lenguajes verbosos.
    • Q&A más rápido que buscar en Stack Overflow.
    • Buenos para plantillas, líneas únicas y pruebas iniciales, pero no para sistemas complejos o novedosos.
  • Varios informan éxito con agentes que pueden leer y escribir archivos, iterar y corregir errores simples (p. ej., juegos pequeños), aunque siguen teniendo dificultades con bases de código desconocidas o complejas.

¿Serán reemplazados los programadores?

  • Visión escéptica:
    • La dificultad de programar está en entender requisitos, compensaciones y deseos humanos, no la sintaxis.
    • La historia de las herramientas CASE, UML, 4GL, no-code/low-code: desplazaron el trabajo en vez de eliminar a los programadores.
    • Los LLM se enfrentan a desajustes entre «realidad y texto» (p. ej., bugs de hardware, restricciones del mundo real), así que la supervisión humana se ve como permanente.
  • Visión más optimista:
    • A medida que mejoren los modelos, manejarán tanto la codificación como el mantenimiento; los humanos quizá se limiten principalmente a especificar el comportamiento y escribir pruebas.
    • Los desarrolladores pueden evolucionar hacia arquitectos, tech leads o «prompt programmers» gestionando flotas de agentes de IA.

Responsabilidad, pruebas y especificaciones

  • Se hace mucho hincapié en que la IA no puede ser legalmente responsable; las organizaciones seguirán necesitando humanos que asuman los resultados.
  • Muchos prevén que los programadores se convertirán en redactores de pruebas/especificaciones: las pruebas y las propiedades codifican la verdadera lógica de negocio, mientras la IA genera las implementaciones.
  • Escribir buenos requisitos se destaca como al menos tan difícil como programar; las especificaciones en inglés sencillo seguirán necesitando precisión.

Preocupaciones económicas y organizativas

  • Las empresas presionarán para que la IA reduzca costes, incluso cuando la calidad se resienta, como ya se ha visto con la subcontratación y algunos flujos de trabajo asistidos por IA.
  • Los temores se centran menos en un reemplazo total y más en:
    • Reducción de personal y presión sobre los desarrolladores más débiles.
    • Micromanagement y puntuación automatizada del rendimiento impulsados por IA.
    • Entornos híbridos en los que los humanos deben mantener sistemas «hairball» generados por IA con poco control sobre el diseño subyacente.