¿Fin de la programación? La IA desafía el rol del programador

Fuentes: The Eternal Promise: A History of Attempts to Eliminate Programmers

A lo largo de la historia de la informática, una promesa recurrente ha impulsado la innovación: la de simplificar la creación de software, reducir costos y, en última instancia, eliminar la necesidad de programadores. Este ciclo, que se repite desde la década de 1960, se manifiesta hoy con la irrupción de modelos de lenguaje grandes (LLMs) y asistentes de programación basados en IA, que predicen el fin de la programación tal como la conocemos. Sin embargo, es crucial analizar estas afirmaciones a la luz de intentos fallidos anteriores para comprender mejor el presente y el futuro.

El primer ejemplo significativo fue COBOL (1959). Diseñado para que los gerentes de negocios pudieran leer, entender y escribir código, COBOL usaba un lenguaje cercano al inglés para eliminar la barrera de los programadores especializados. Si bien COBOL se convirtió en un lenguaje fundamental para la banca y otros sectores, no eliminó a los programadores; en cambio, creó una nueva profesión: el programador COBOL. La ironía radica en que una herramienta destinada a eliminar la necesidad de programadores, se convirtió en una fuente de empleo duradera.

La década de 1970 vio el auge de la inteligencia artificial, con predicciones optimistas sobre máquinas capaces de realizar cualquier trabajo humano y de programarse a sí mismas. Los sistemas expertos prometían traducir el lenguaje natural en código funcional. Sin embargo, la realidad se impuso con el 'Primer Invierno de la IA', provocado por la incapacidad de los sistemas para manejar la complejidad del mundo real. La lección fue que la traducción de la intención humana en software es un desafío conceptual, no solo técnico.

En la década de 1980, los lenguajes de cuarta generación (4GLs) ofrecieron una nueva esperanza, prometiendo abstracciones aún mayores que permitieran a los no programadores crear aplicaciones a través de declaraciones de alto nivel. Herramientas como FOCUS y Microsoft Access permitieron a muchos usuarios crear aplicaciones sencillas, pero la complejidad inherente a las aplicaciones sofisticadas y la necesidad de integración con otros sistemas revelaron las limitaciones de los 4GLs. Nuevamente, se generó una nueva categoría de trabajo de programación especializada.

Finalmente, las herramientas CASE (Computer-Aided Software Engineering) de la década de 1990 prometieron la automatización completa del proceso de desarrollo de software a través de modelos y especificaciones. Aunque hubo inversiones significativas, la promesa no se cumplió.

La historia nos enseña que, si bien las nuevas tecnologías pueden cambiar la naturaleza del trabajo de programación, es poco probable que la eliminen por completo. En cambio, estas innovaciones a menudo crean nuevas especialidades y desafíos, redefiniendo el papel del programador en el proceso de desarrollo de software. La democratización del acceso a la programación es un objetivo valioso, pero la complejidad inherente a la creación de software requiere un conocimiento especializado, independientemente de las herramientas utilizadas.