
ChatGPT se ha hecho grande. Si Internet es algo por lo que pasar, es LA PRÓXIMA GRAN COSA, y me refiero a Industria 4.0 + 1. Sea lo que sea: ¿Industria 5.0, Internet 5.0, Conversaciones 5.0? Dejaré el nombramiento a los expertos en marketing.
Todos hemos visto cientos de artículos en Internet sobre cómo ChatGPT está revolucionando el mundo y cómo se llevará puestos de trabajo. Ah, bueno, hemos escuchado que la IA se hizo cargo de los trabajos durante los últimos años, pero nuestros trabajos siempre estuvieron seguros: ¡somos programadores! El problema es que esta revolución es un poco diferente: aparentemente, afecta PRINCIPALMENTE a los programadores…
Esta publicación de blog se divide en las siguientes secciones:
Para poder responder a la pregunta de este artículo, veamos las capacidades de ChatGPT, específicamente para desarrolladores de software. Si le preguntas al mismo ChatGPT, te dará la siguiente respuesta:
Como modelo de lenguaje de IA, no tengo la capacidad de escribir software. Sin embargo, puedo entender y generar texto en lenguaje natural sobre conceptos de programación y varios lenguajes de programación. Puedo ayudar con la codificación proporcionando información sobre la sintaxis, ejemplos de código y resultados del programa.
Oh, qué modesto… Sin embargo, cuando le pide que escriba un informe ABAP que tome el número de vuelo y la fecha de salida como parámetros de entrada y presente otras conexiones con el mismo origen y destino que salen dentro de los 10 días anteriores o posteriores a la fecha especificada, presenta el siguiente salida:
(si no eres técnico, puedes desplazarte más allá del código 🙂)
Salida generada por ChatGPT
Entonces, aquí está lo primero sobre ChatGPT: ¡es un mentiroso! 😉 En realidad, es bastante bueno para escribir código mucho más rápido que la mayoría de los desarrolladores.
Además, cuando le pedí que cambiara este código para que estuviera orientado a objetos y proporcionara una clase de prueba de unidad ABAP para él, emitió los siguientes 2 fragmentos:
Salida generada por ChatGPT
2. Unidad ABAP
Salida generada por ChatGPT
Bueno, en este punto, podríamos ponernos exigentes y cuestionar el hecho de que tanto la lógica de selección como la de presentación están integradas en un solo método, también podríamos cuestionar el hecho de que generó una clase de «alternativas» dedicada en lugar de un controlador de vuelo genérico con un método de alternativas, o que nombró todo como una clase local, aunque queríamos crear un objeto global. Pero este no es el punto…
El punto es que ChatGPT logró convertir un extracto de lenguaje natural de dos oraciones en algo que podemos copiar y pegar en ADT (herramientas de desarrollo ABAP) y desarrollarlo más. Si hay ALGUIEN en el mundo que pueda hacerlo más rápido, envíeme un mensaje y lo contrataré hoy por mucho dinero.
Todavía tengo que probar esto en la vida real, pero debido a que realmente no he estado involucrado en un proyecto de desarrollo desde que se publicó ChatGPT, solo puedo trabajar en algunos escenarios hipotéticos que se me ocurren. Sin embargo, si ahora estuviera a cargo de un nuevo requisito de desarrollo ABAP, esto es para lo que usaría ChatGPT:
Tuve la oportunidad de pedirle a ChatGPT que creara una consulta SQL para mí que acceda a los datos del pedido de ventas, aquí está el primer intento:
Salida generada por ChatGPT
Como puede ver, no es genial… La tabla Sales_order_header no existe y estos nombres de campo parecen demasiado fáciles de leer para ser SAP.
Entonces, decidí continuar con el chat y darle a ChatGPT más detalles sobre lo que quiero:
¡El resultado de esto fue mucho mejor! Obtuve los nombres de campo correctos, la sintaxis ahora se ve como ABAP y podría copiar y pegar esto en un informe y desarrollarlo como quiero.
¿Qué pasa con algo más complejo, por ejemplo, vistas de CDS con algunas uniones? Aquí tienes:
Salida generada por ChatGPT
¿Cuánto se tardó en generar? 20 segundos para escribir mi consulta, otros 20 para la respuesta. Voy a repetir: si hay ALGUIEN en el mundo que pueda escribir todo esto en menos de un minuto, por favor comuníquese conmigo.
El siguiente caso de uso potencial para ChatGPT en su trabajo diario es construir un andamiaje para sus clases ABAP. Imaginemos que tenemos un escenario en el que necesitamos una clase DAO (objeto de acceso a datos) que actuará como nuestro único canal que interactúa con la capa de datos. Así es como ChatGPT maneja mi consulta:
Salida generada por ChatGPT
No es perfecto: a la parte de definición le faltan los métodos y tiene una extraña declaración pública de creación privada dentro, no hay verificación de entradas en lt_materials antes de la llamada de VBAK. Pero aún así, se puede copiar y pegar en un IDE y desarrollarse aún más. La lógica de selección real es bastante acertada. Tiempo necesario: Alrededor de 90 segundos en total.
Ahora, usemos la clase DAO que creamos anteriormente y envolvámosla en un informe que tome los parámetros requeridos como entrada del usuario. Los resultados deben mostrarse en una cuadrícula ALV.
Salida generada por ChatGPT
Diré una cosa: ¡GUAU! Manejó el botón de opción, creó una declaración de caso bien estructurada e incluso colocó los resultados en una cuadrícula ALV. Aunque no estoy seguro de si este ALV realmente funcionaría correctamente, sigo pensando que es bastante impresionante, ¡especialmente porque me tomó alrededor de 40 segundos llegar a él!
Nota: En realidad, no ejecuté nada del código, así que si hay errores en él que pasé por alto, lo siento.
Pero, no es tan hermoso. ChatGPT es bastante nuevo y tiene sus fallas y limitaciones. Aquí hay algunos que todos deberíamos recordar cuando lo usamos.
La versión actual de ChatGPT se basa en datos de capacitación de 2021 que están disponibles en Internet. Debido a que ya tiene 2 años y el ecosistema de SAP ha evolucionado mucho desde entonces, puede haber pequeñas discrepancias en los resultados que proporciona. ChatGPT-4, que se rumorea que se lanzará en 2023, es aún más avanzado. ¿Qué mejoras traerá para escribir ABAP? Vamos a esperar y ver.
ChatGPT es «solo» un modelo de lenguaje, inevitablemente proporcionará respuestas incorrectas. Por lo tanto, confiar únicamente en su salida podría no ser una buena idea todavía. Recomendaría verificar las respuestas que proporciona con una fuente confiable. En la programación ABAP, una simple copia y pegado en ADT/ABAP Workbench probablemente ya resaltaría los problemas principales.
Nota: ¡Es posible que aún sea demasiado pronto para tratar de superar esa entrevista de trabajo para un puesto del que no tiene idea!
Como puede ver arriba, cuando le pedí a ChatGPT que creara una declaración SQL para mí, sin darle suficiente contexto, no respondió diciendo «No estoy seguro de haberlo entendido correctamente, ¿podría proporcionar más contexto?» para eliminar las conjeturas En cambio, simplemente respondió con lo que pensó que era la mejor combinación. Se necesita un poco de práctica para obtener estas consultas con suficiente nivel de detalle, por lo que nuevamente, es mejor tener al menos algún tipo de idea del resultado esperado.
Los resultados entregados por ChatGPT están en formato de texto. Lo que significa que todavía necesitamos a alguien que se encargue de las configuraciones sin código, llene las tablas personalizadas, transporte los cambios, copie y pegue el código en un editor ABAP y, potencialmente, depure para encontrar problemas.
No, no deberían. No deberían preocuparse por su futuro todavía, siempre y cuando pasen la prueba de innovación, es decir, adopten la evolución de ChatGPT y comiencen a utilizar sus capacidades para su ventaja. Aquí están mis 4 conclusiones clave para los desarrolladores de ABAP:
¿Hasta dónde puede llegar? ¿Cuánto puede evolucionar potencialmente Chat-GPT? Estas son 2 preguntas que muchos profesionales de TI se hacen hoy en día. La hoja de ruta de Chat-GPT y SAP aún no está clara, pero estos son algunos de mis pensamientos inverosímiles al respecto…
SAP está invirtiendo mucho esfuerzo en herramientas sin código/de código bajo. Estas herramientas no están destinadas a reemplazar completamente a los desarrolladores, sino que se supone que abren el mundo del software a usuarios no técnicos. ¿Qué pasaría si pudiéramos integrarlos con Chat-GPT? ¿Se volverían eventualmente lo suficientemente fuertes como para eliminar por completo la necesidad de desarrolladores de software? ¿Podría Chat-GPT eventualmente convertirse en el desarrollador que necesitaría ocasionalmente, al usar herramientas sin código o de código bajo?
¿Puede Chat-GPT volverse tan avanzado y confiable que eventualmente obtenga acceso directo a los sistemas locales y al BTP? ¿Se imagina pedirle a Chat-GPT que cree una aplicación de Fiori Elements y la aloje en BTP y el resultado sería una aplicación implementada completamente funcional?
Al final del día, Chat-GPT es un modelo extremadamente inteligente que puede causar estragos. ¿Cómo nos mantenemos a salvo después de dejar que este huésped no descubierto ingrese a nuestros sistemas?
Me encantaría escuchar sus opiniones sobre Chat-GPT. ¿Ya lo usas o estás pensando en empezar? ¿Cómo ves su futuro? ¡Déjame saber abajo en los comentarios!
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073