ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Puedes utilizar este chatbot para aprender distintos lenguajes de programación, detectar errores o implementar funcionalidades.

A no ser que hayas estado perdido en el Amazonas los últimos 20 años, seguramente has interactuado alguna vez con un chatbot o al menos sabes de que va esta tecnología, que podemos definir informalmente como programas informáticos diseñados para simular conversaciones con los humanos de forma autónoma.

Desde el surgimiento del primero en su tipo, Elizza, creado por el MIT en 1966, estas herramientas habían venido avanzando lentamente.  Pero en los últimos años, la popularidad de los chatbots ha crecido exponencialmente debido al auge de las plataformas de mensajería y al desarrollo de tecnologías como el procesamiento del lenguaje natural.

Poco a poco han evolucionado desde simples programas de respuesta automática hasta sofisticados sistemas capaces de entender el contexto y las intenciones de las personas.

Pero, ¿hasta donde son capaces de llegar los chatbots iniciando 2023?

Hemos dedicado varios artículos a analizar su mejor candidato en la actualidad, ChatGPT, pero hoy lo estaremos viendo desde la óptica de un programador, intentando forzar su uso para que actúe como una inteligencia artificial diseñada específicamente para desarrollar software.

Pruebas a realizar

Hace unos días en SaasRadar brindamos una guía básica sobre Copilot.

Si no lo conoces, rápidamente te digo que es una inteligencia artificial entrenada con el código de los repositorios públicos de GitHub y que se enfoca específicamente en la programación.

En ese artículo le poníamos diferentes situaciones al modelo para que nos diera sugerencias de código para resolver el problema. La idea es que hoy recreemos algunas de estas situaciones con ChatGPT a ver qué tal nos responde.

Cabe aclarar que a diferencia de Copilot, ChatGPT es un modelo general que no se enfoca en la programación y , al menos en teoría, cabría esperar un rendimiento inferior en este ámbito.

De este modo, estaremos realizando las siguientes pruebas:

  • Ejemplo 1. Hola Mundo
  • Ejemplo 2. Promedio
  • Ejemplo 3. Validando un email
  • Ejemplo 4. Fibonacci
  • Ejemplo 5. Días transcurridos entre 2 fechas
  • Ejemplo 6. Clasificador de triángulos
  • Ejemplo 7. Traductor de Google

Ejemplo1. Hola Mundo

Empezamos con el ejemplo más sencillo, un simple Hola Mundo que se debería resolver en una línea de código. Vamos a preguntarle a ChatGPT.

Hola Mundo con ChatGPT
Y como vemos se obtiene el resultado esperado además de una indicación de como ejecutarlo. De momento, va cumpliendo.

Ejemplo 2. Promedio

Subimos un poquito la parada, pero aún en el nivel fácil. El objetivo es que calcule el promedio entre una lista de números pasados por parámetros. Veamos el resultado:

2. promedio ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

En este caso no quiero que se imprima el promedio dentro de la función por buenas prácticas y reutilización del código, pero no fui demasiado específico en el input. Así que voy a intentar corregirlo:

2. promedio 2.png 2 ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Y ahora sí obtenemos lo que queríamos, muy bien aquí ChatGPT ubicándose en el contexto incluso dentro del código.

Ejemplo 3. Validando un email

Probemos ahora como se desenvuelve con expresiones regulares. El objetivo es que logre encontrar la expresión regular correcta para validar el formato de cualquier email.

3. Validando email ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Y nuevamente, muy bien resuelto. Pudo reconocer la biblioteca que iba a necesitar, importarla y luego encontrar la expresión regular que necesitaba.

Digamos que ahora quiero saber como hacer esto mismo en otros lenguajes de programación. Si ChatGPT pudiera decirme sería una muy buena herramienta para aprender un segundo lenguaje de programación luego que se tenga dominio sobre alguno.

Veamos:

3.1 Java ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas
3.2 PHP ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas
3.3 Javascript ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Y nuevamente acierta, y de una forma muy limpia, además. Sigamos complicando los casos.

Ejemplo 4. Fibonacci

4. Fibonacci ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Una vez más obtenemos una respuesta acertada. Me llama mucho la atención la manera que además explica los conceptos necesarios para resolver el problema.

Ejemplo 5. Días transcurridos entre 2 fechas

5. Dias entre fechas ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Y seguimos obteniendo código correcto.

Ejemplo 6. Clasificador de triángulos

6. Clasificador de triangulos ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Prueba superada exitosamente.

Ejemplo 7. Traductor de Google

Quiero probar ahora sí reconoce y puede utilizar servicios como APIs. Para esto voy a mandarlo a implementar una función que traduzca una cadena a diferentes idiomas.

6. Translator1 ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

En este caso si obtengo un error al ejecutar el código. ChatGPT pasó por alto un detalle muy trivial, y es que googletrans.LANGUAGES es un diccionario y random.sample() funciona con secuencias. Por tanto, debe ser convertido a lista antes. Intentaré decirle que cometió un pequeño error a ver si es capaz de solucionarlo:

6. Translator2 ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Y ahora sí, con solo decirle donde estaba el error lo supo identificar y corregir y esto es un gran WOW, da muy buenas luces de que tan bueno es el manejo del contexto de ChatGPT, en mi opinión, impresionante.

Ya de este modo concluimos los principales ejemplos que probamos con Copilot y los resultados me sorprenden muchísimo porque tuvimos muy buenas respuestas que solucionaron cada uno de los problemas, con explicación de conceptos, corrección de errores y ejemplos de uso. Y todo esto, siendo un chatbot de propósito general, sin especialización en temas de desarrollo de software.

Ya superadas mis expectativas sobre el dominio del contexto de ChatGPT, quiero llevarlo un poco más al límite con algunas pruebas adicionales.

Identificación de objetivo de una función

Primeramente, tengo curiosidad por ver si es capaz de identificar qué hace una función por su código. Para esto voy a tomar un ejemplo simple de recursividad (cálculo de factorial) y le voy a cambiar el nombre a la función para no darle pistas a ver si es capaz de identificarla:

7. Identificar funcion ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Y sí, fue capaz de identificar que estábamos calculando el factorial de un número por el código. Me llama la atención porque este es uno de los ejercicios que suelen salir en exámenes de asignaturas de programación, y lo ha resuelto muy bien.

Detección y corrección de errores

En segundo lugar, quiero probar la capacidad de ChatGPT para detectar errores en un código que le pase y solucionarlos.

Para esto utilizaré el mismo código anterior y le cambiaré la condición base para que quede una recursividad infinita, a ver si es capaz de detectarla.

8. Deteccion de errores ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Y … WOW, primeramente, me dice que tengo que especificarle qué hace la función, pero aun así lo saca por el contexto como antes, y logra identificar todos los errores. Veamos si es capaz de corregirlos:

9. Correccion de errores ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

Prueba superada … y de qué manera … 🔥

▶️ Te puede interesar: El arte de construir prompts para ChatGPT: las técnicas para obtener mejores resultados

Complejidad de algoritmos

Por último, quiero ver si es capaz de optimizar el código para que tenga un mejor rendimiento.

Para esto utilizaré un algoritmo de ordenación con una alta complejidad ciclomática y veremos que dice al respecto:

10. Complejidad ChatGPT para programar: pongo a prueba su rendimiento con 10 tareas

¡Prueba superada!

Puedes probar esta herramienta accediendo a este enlace https://chat.openai.com/

Conclusiones

  • Los resultados obtenidos en las pruebas demuestran que ChatGPT es capaz de realizar tareas de programación de manera eficiente y con un alto nivel de precisión.
  • ChatGPT se ha mostrado como una herramienta útil para apoyar a los estudiantes en el aprendizaje de la programación, ya que permite una interacción más personalizada y adaptativa.
  • Para profesionales de la programación, puede servir como un apoyo para implementar funciones sencillas.
  • Puede ser una herramienta muy útil para aprender distintos lenguajes de programación.
  • Podemos sacarle mucho partido en la generación de casos de prueba y evaluación automatizada, lo que permite ahorrar tiempo y esfuerzo en la corrección del código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.