- Publicidad -
viernes, abril 19, 2024

ChatGPT, otra vez

*Por Jonathan Palafox

Estas últimas dos semanas han sido interesantes de manera muy personal. Con el descubrimiento de ChatGPT, me embarqué en la cruzada no sólo de probarlo, sino también de difundirlo entre mis cercanos para saber que tanto les asombraba este paso enorme de la tecnología. Tal cómo previsualicé, los ejercicios que ellos llevaron a cabo eran bien distintos de los propios, y volví a sorprenderme.

Entre las diversas solicitudes llevadas a cabo, hubo algunas que incidían directamente en mi trabajo: el desarrollo de software. Y lo visto es extraordinario. Uno puede obtener código fuente, en prácticamente cualquier lenguaje, a partir de instrucciones dadas al chat. En el momento en que vi el ejercicio, debo confesar que sentí un escalofrío.

Comenzamos con una instrucción precisa, simple. ChatGPT cumplió, e incluso se lució explicando el código generado. Imprimió en pantalla el conjunto de líneas que permitían convertir a un dato decimal una cadena de caracteres legible en formato de horas, minutos y segundos. Todo bien. Luego, con instrucciones incrementales, fuimos refinando y aumentando la función. Le pedimos que permitiera cargar el parámetro de manera asíncrona, usando Ajax. Bien. Después que hiciera obligatorio al menos una de las letras de la cadena natural (una “h” o una “m” o una “s”). Perfecto. Enseguida solicitamos que escribiera el código necesario para convertir la función en una API que pudiera llamarse desde aplicaciones externas. Hecho.

Mi asombro no dejaba de crecer, aunque ya sudaba menos.

A lo largo de mi carrera, he vivido de cerca el problema del software, la complejidad inherente de su desarrollo, y esta no radica en el apartado técnico, no en la condición de poder generar líneas de código de correcta sintaxis. No. La complejidad viene, primero y casi completamente, de extraer los requisitos, es decir, de conocer el problema y delimitarlo. Luego es importante “mapear” que tantos puntos de la organización/proceso envuelve, de manera que el software generado pueda darles servicio a todos. Generalmente, este proceso de “descubrimiento” se hace tanto con expertos del proceso como con los usuarios del mismo, pues igual que en la vida, la teoría y la práctica guardan cierta distancia entre sí.

Si pienso entonces en cuán sencillo podría resultarle a una AI la generación de un sistema, podría decir que estará en relación directa con la simpleza de la instrucción: quiero decir, no mucho. Imagínese usted que es necesario llevar a cabo un sistema contable, para una organización que paga por destajo. A la AI no le bastará recibir “genera un programa de contabilidad que considere el pago por destajo”. O tal vez sí, pero el resultado no será el deseado (coloque usted mismo esa frase, y sorpréndase). Al final un sistema es un conjunto muy extenso de funciones que suelen estar interrelacionadas, y el trabajo del ingeniero de software es estructurarlas de tal forma que tengan como prioridad la integridad de la información y la facilidad de uso, lo que no puede lograrse con instrucciones simples que se le den al chat. Para que quede más claro, intentar hacer un sistema a partir de pegar resultados de instrucciones dadas de manera independiente sería tanto como querer traducir un texto de un idioma a otro traduciendo una palabra a la vez.

Lo que sí me resulta emocionante es la capacidad aumentada de la que gozarán cada uno de nuestros ingenieros con el uso de estas herramientas. Podrán concentrarse en modelar, en pensar la estructura del sistema y en las formas de hacer más simples las interacciones; podrán evitar el quebradero de cabeza que implica transformar los algoritmos diseñados en líneas de código funcionales. Podrán utilizarse cómo fuente de documentación o, incluso, como explicación de código para los casos en que es necesario retomar algo que no necesariamente hemos hecho nosotros. Créame cuando le digo que al escribir esto, me brota una sonrisa en el rostro.

Creo que esto es un paso más hacia el futuro en el que, lejos de vernos reducidos por la tecnología, resultamos potenciados por la misma; el futuro que Yuval Noah Harari describe en sus libros, donde no augura una guerra sin cuartel entre unos seres orgánicos y otros sintéticos, sino un futuro donde el hombre pueda comenzar a alcanzar hitos que no habían sido posibles antes, pero que únicamente se mantenían guardados esperando el combustible, la chispa, el motor, el camino, el momento, de salir a deslumbrarnos.

Le he pedido a chatGPT que escriba un soneto que hable de un futuro donde colaboremos, y esto me ha dado:

El futuro es un lienzo en blanco aún,

por descubrir lo que allí podrá ser,

la IA y el hombre juntos han de ver,

un mundo mejor y más inteligente aún.

Siempre se habló de un futuro lejano,

donde máquinas rigen nuestra vida,

y el hombre teme a la IA surgida,

por temor a que todo sea humano.

Pero la colaboración es la clave,

de un mundo donde todo es posible,

donde la IA y el hombre se hallan,

un futuro que es más que admirable,

donde la tecnología y el hombre unible,

logran un mañana más sostenible.

Me quedo tranquilo pensando que, aun si me equivocara en el tema del desarrollo de software, todavía puedo hacer mejores versos.

* Ingeniero en Sistemas Computacionales, fundador de Tres Factorial Ingeniería de Software. Miembro de Canieti Guanajuato desde 2018 y Coordinador de la Comisión de Innovación en Concamin.

jonathan.palafox.lopez@gmail.com

twitter @jpalafoxlopez

ÚLTIMAS NOTICIAS

ÚLTIMAS NOTICIAS

LO MÁS LEÍDO