La revolución de las herramientas de Inteligencia Artificial generativas trajo una ola de incertidumbre sobre la vigencia y relevancia de varias profesiones. El software no fue la exepción. Hoy quiero contarte por qué, a pesar de que estas herramientas mejoren mucho, la programación es y seguirá siendo necesaria.
ChatGPT es genial y programa muy bien... ¿Deberíamos preocuparnos por nuestros trabajos?
Para explicarlo, considero conveniente citar a Robert C. Martin (coloquialmente conocido como Uncle Bob), un experimentado desarrollador, autor de muchos libros reconocidos y uno de los coautores del Manifiesto Ágil.
Indeed some have suggested that we are close to the end of code. That soon all code will be generated instead of written.
...
Nonsense! We will never be rid of code, because code represents the detail of the requeriments. At some level those details cannot be ignored or abstracted; they have to be specified. And specifying requeriments in such detail that a machine can execute them is programming. Such specification is code.
- Robert C. Martin, Clean Code (2008).
Es increíble como una cita de hace 15 años exprese tan bien la realidad de hoy en día con estas herramientas. Si bien las IA generan código confiable y detallado, siempre es necesaria la mano del programador para afinar detalles propios de los requerimientos. Por muy detallado que sea el prompt, la IA siempre hará suposiciones que no encajarán con los requerimientos y habrá que hacer cambios manualmente.
En el momento que las IA generen código que satisfaga bien la mayoría de los requerimientos, el prompt será la especificación y, por tanto, el prompt será el código. De hecho, este interesante concepto lo manejan y estudian las nuevas tendencias de Prompt Engineering.
El día en que las inteligencias artificiales generen el software completo que demanda el mercado está lejos aún. Sin embargo, podemos (y deberíamos) desde ya aprovechar estas herramientas para el desarrollo y agilizar enormemente este proceso.