Las nuevas herramientas de inteligencia artificial, con ChatGPT al frente, revolucionarán la creación de texto, imágenes, videos o música. Su capacidad de escribir código ha tenido menos impacto, pero es igual de increíble. Como en otras disciplinas, en los últimos meses ha habido también artículos apocalípticos escritos por expertos titulados “El fin de la programación” o “ChatGPT reemplazará a los programadores en diez años”. La clave, sin embargo, está en los detalles: ¿qué es exactamente lo que es capaz de programar?
Primero, es capaz de resolver retos que merecen mucha repercusión. La revista Nature publicó este miércoles un artículo de investigadores de DeepMind (Google) donde agilizan un 70% la eficacia de un algoritmo del lenguaje C++ que llevaba décadas en uso: “Demostramos cómo la inteligencia artificial puede ir más allá del estado actual del arte al descubrir rutinas hasta ahora desconocidas”, dice el artículo. “Lo que realmente es interesante es que el sistema aprendió a escribir una serie de instrucciones sin que nadie le dijera cómo”, explica Armando Solar-Lezama, investigador del MIT (EE.UU.) que tuvo acceso al artículo antes de su publicación.
“Le dijeron qué instrucciones podía usar y empezó a probar combinaciones. Lo único que le decían es si estaban bien o mal. Solo con eso el sistema pudo inferir cuáles eran las instrucciones que debía escribir y conectar para generar el programa”, añade el experto sobre AlphaDev, el programa creado por DeepMind.
Estos avances prueban que la inteligencia artificial (IA) supera retos complejos. ¿Pero hasta dónde puede llegar sin intervención humana? El artículo de Nature explica que plantearon el problema como un juego para la máquina, que había sido entrenada específicamente, y los humanos además guiaban el proceso. Es importante, pero no una revolución absoluta. “La gente está muy emocionada”, sigue Solar-Lezama. “Con estos modelos de IA hemos visto que de pronto pueden hacer cosas que antes se consideraban muy difíciles. Pero una pregunta que tenemos ahora es ver qué pueden hacer bien y qué no. Basándonos en eso, ¿cómo podemos reimaginar la programación para hacerla más efectiva? Ya hay herramientas que empiezan a ayudar a los programadores, pero solo como un ayudante”.
Es como un aprendiz listo
Esa palabra de “asistente” o “ayudante” se repite a menudo en conversaciones con programadores y profesores de computación, como si la IA fuera un aprendiz espabilado. Aunque la novedad sea impactante, pocos prevén un terremoto en el oficio. Como explica Brigitte Pientka, profesora de la Universidad McGill de Montreal (Canadá) y coautora de un artículo que muestra que ChatGPT sacaría un notable en un curso de introducción a la programación: “ChatGPT puede ser sorprendente y engañosamente bueno para generar programas cortos. Pero no es muy fiable por ahora. Diría que en el futuro será más importante poder evaluar y validar programas generados automáticamente para garantizar un nivel de seguridad y fiabilidad”. Los programadores, por tanto, seguirán siendo igual de necesarios, quizá con un rol distinto, según Pientka: “Decir que ya no necesitamos informáticos gracias a ChatGPT es como decir que gracias a las calculadoras y Excel no necesitamos matemáticos ni estadísticos”.
La misma revista especializada que publicó en enero sobre el “fin de la programación”, difundió este fin de semana un artículo titulado “La IA no ayuda a los programadores”, del célebre profesor Bertrand Meyer. Como programador, escribe Meyer, le iría bien un asistente que le mantuviera a raya y alerta cuando se desvía. Y sigue: “Pero eso no es lo que obtengo [de una IA]. Obtengo el equivalente de un licenciado engreído, inteligente y muy leído, también educado y rápido para disculparse, pero completamente, y sin remedio, descuidado y poco fiable. De poco me sirve esa supuesta ayuda”.
En foros de programadores como Hacker News hay docenas de debates abiertos sobre cómo y cuánto ayuda ChatGPT y otras aplicaciones más específicas. La variedad de respuestas es enorme, pero el entusiasmo irremediable de hace unos meses ha decaído. Solar-Lezama lo pone en un contexto de una etapa más en la historia de la programación: “Va a cambiar la programación como ya ha cambiado en los últimos 20 años. Y en los anteriores 20. Hoy es diferente a cuando me gradué. También llegaron lenguajes de programación nuevos que permitían automatizar cosas que la gente hacía a mano. Era fácil reusar el código que alguien había escrito. Hoy puedo escribir programas extremadamente complejos en Python en 10 minutos que hace una generación hubieran tomado meses de un equipo grande”, añade.
No ahorra tanto tiempo
La IA se ha convertido en ese asistente que permite reducir algo el tiempo dedicado al trabajo de programar. Pero no en cantidades extraordinarias: “Al principio me sorprendió descubrir que ChatGPT daba bien código del software”, dice Daniel Lemire, profesor de la Universidad de Québec (Canadá), que hace trabajos de programación avanzados. “Copilot [una herramienta de Microsoft] puede escribir secciones enteras de código, como si pudiera leer mi mente. Pero a veces se equivoca. Es difícil de medir el tiempo que ahorro quizá un 10%. Escribir código es una pequeña fracción de programar, que incluye diseño, pruebas, evaluación comparativa, debates, especificaciones”.
Por esos motivos, el trabajo de programador parece de momento una apuesta razonable para el futuro. A pesar de los avances en automatización de software hasta ahora, el empleo de programador crece. La única certeza es que en el futuro habrá más código, en buena parte gracias a la agilidad que permite la IA, pero no por ello menos programadores. “Predigo que seguiremos contratando a más personas, al margen de los avances en IA”, asegura Lemire. “Los trabajos serán diferentes, incluso completamente nuevos, pero no habrá una caída en el corto plazo debido a la inteligencia artificial. Los estudiantes que aspiran a una carrera en la industria del software deben mantener el rumbo”, añade.
La eficiencia de los programadores, no su sustitución, será la gran ventaja de esta revolución, según Stephen Piccolo, profesor de la Universidad Brigham Young (EE.UU.): “Seguro que algunas empresas contratarán menos, al menos inicialmente, mientras se entienden las implicaciones de la tecnología. Pero en el futuro próximo, esta tecnología hará que los programadores sean más eficientes en lugar de reemplazarlos”.
El lenguaje natural tiene sus límites
Otra de las aspiraciones repetidas que podría permitir a la IA es programar en lenguaje natural: pedir en español a ChatGPT que escriba el código necesario para crear una aplicación, una web o un gráfico. Aunque algo podrá hacerse, también tendrá un alcance limitado por ahora. “Los lenguajes naturales están llenos de ambigüedades”, dice Emily Morgan, profesora de Lingüística en la Universidad de California Davis y coautora de un artículo sobre cómo estos sistemas encuentran errores informáticos. “Al contrario, los lenguajes de programación tienen que ser inequívocos. Por eso, queremos que nuestros lenguajes de programación no sean ambiguos”.
Pero sí podrá pedirse en español algo que ChatGPT convierta en código. El problema luego será buscar o limar los problemas: “Vamos hacia el uso de interfaces de lenguaje natural (como ChatGPT) para ayudar a generar gran parte de nuestro código”, señala Morgan. Y explica: “Puedes pedirle a ChatGPT cosas como ‘genera una plantilla para un sitio web’, pero seguirá generando código o HTML. Necesitará que el lenguaje natural se traduzca a un lenguaje de programación inequívoco”.