Icono del sitio Profile Software Services

Claude vs ChatGPT vs Gemini: comparativa real en proyectos

Claude vs ChatGPT vs Gemini: comparativa real en proyectos

Hoy volvemos a traer un nuevo post sobre Inteligencia Artificial. Si en este post que subimos hace unos días buscábamos presentar las características principales de cada modelo y su implementación, el enfoque de hoy es distinto. El propósito de este post no es el de hacer listas interminables de características, sino ver el valor práctico real en proyectos concretos. 

Vamos a pedirle a cada modelo que desarrolle una aplicación en las áreas donde estos modelos son fuertes. Se valorará que la implementación funcione a la primera, tiempo de las respuestas y en la implementación, si presenta bugs, si estos bugs impedirían la ejecución de la aplicación completamente o no… 

Esto es lo que haremos: 

Metodología: pasos previos y requerimientos 

Entorno de desarrollo 

Creé un nuevo proyecto en VSCode e instalé Vite para generar el entorno del frontend y correr las aplicaciones desde una web en local, para cada modelo. Una vez ya se instalaron las dependencias de npm y creados los archivos básicos para hacer funcionar la aplicación web, cada modelo comenzó a trabajar sobre el mismo punto de partida y en las mismas condiciones. 

KPIs a analizar 

ChatGPT: un asistente conversacional para practicar entrevistas de trabajo 

 Descripción del proyecto 

ChatGPT es bueno en casi todas las aristas, pero un área donde destaca sería en la redacción y capacidad de convertirse en un chatbot conversacional. Entonces, vamos a pedirle un simulador de entrevistas de trabajo. El usuario tendrá que definir si es el entrevistador o el candidato, definir su área del marketing digital y comenzar a dialogar con el modelo. 

A los candidatos se les hará preguntas típicas de entrevistas, tendrán que responder y luego la IA valorará su respuesta y hará una rúbrica. A los entrevistadores se les presentarán casos prácticos. Para una determinada pregunta se dará una respuesta y el entrevistador tendrá que valorar si el candidato sería contratado o no, y dar los motivos detrás de esta decisión. Luego, GPT valorará dichos motivos desde el punto de vista de RRHH.

Experiencia en la implementación 

En un primer momento, aunque ChatGPT comprendió bien el objetivo que se le pedía, no me devolvía más que respuestas diciéndome lo que iba a hacer y pidiéndome que si me parecía bien, me daría los códigos. Necesitó de 6 intentos seguidos de mi parte diciéndole que sí, que me los diera. Me explicó que suponía mucha carga de código y no podía dármelo, con lo que le pedí que fuera dándome los códigos archivo por archivo, lo cual funcionó y pude comenzar. 

Durante la implementación, perdió en dos ocasiones la referencia de la estructura de carpetas del proyecto, lo que me obligó a tener que ir adaptando las rutas manualmente. 

Un aspecto que me pareció llamativo fue que el archivo main.js, que me lo dió al principio de la conversación, volvió a actualizarlo al final ya que me comentaba que si no la aplicación se rompería.  

Me pareció curioso porque como tal ya había cumplido con la tarea de darme dicho archivo y tampoco se le pidió que revisara si archivos previos podían entrar en conflicto con los nuevos. No tenía constancia de que la aplicación estuviera rota porque todavía no se había probado, con lo que significa que en segundo plano estuvo en todo momento revisando que existiera coherencia entre los archivos, incluso si ya se habían desarrollado. Hizo estos ajustes en varias ocasiones. 

Logra montar la aplicación a la primera y no presenta bugs graves, pero el simulador no funcionaba correctamente ya que las valoraciones no eran realistas (contesté ‘a’ a una pregunta y fui valorado con un 7). Se le pidió que en lugar de soltar respuestas predeterminadas se conectase a la API de ChatGPT y que fuese este mismo quién valide a los candidatos o a los entrevistadores. Tras este cambio, aunque todavía quedaba algún ajuste pendiente, la experiencia general mejoró bastante. 

Valoración 

Claude Code: optimizar y refactorizar la lógica del proyecto

 Descripción del proyecto 

Como ya vimos Claude Code vive dentro del proyecto y su gran ventaja reside en la capacidad de entender todo el contexto de tu código, creación y modificación de archivos, optimización y mejoras… 

Para este caso, le he pedido a ChatGPT (para que Claude no caiga más tarde en sesgos) que desarrolle una aplicación web de reserva de viajes, pero realizada por un desarrollador que acaba de comenzar a aprender. Deberá incorporar fallos, duplicidades y malas prácticas, pero sin hacer que esto rompa la aplicación.  

Es una SPA con estilos simples y un formulario que recoge los datos de la reserva. Esos datos se envían al localStorage y, cuando existan valores en el local, la aplicación leerá los datos y los pintará en el front. Así se vería:

Luego, instalaremos Claude Code en el proyecto y le diremos que el proyecto fue escrito por un desarrollador junior y que dicho proyecto escalará ya que deberá subirse a producción. Claude Code tendrá que actuar como desarrollador senior y buscar los fallos, optimizaciones y aplicar buenas prácticas, así como adaptar la arquitectura a módulos. 

También, se le pedirá que haga el calendario dinámico en lugar de mostrarlo como campo de formulario y que la lista de ciudades (solo hay 5 ciudades listadas) lo sustituya por un buscador que escuche en tiempo real lo que escribe el usuario para que vaya filtrando las ubicaciones y proponiéndole resultados al usuario, con lo que como mínimo también tendrá que instalar dos dependencias externas para incorporar estas funcionalidades (esto no se le mencionará en el prompt). 

Experiencia en la implementación 

La experiencia en Claude Code fue bastante distinta a los otros modelos. Al estar integrado dentro del proyecto, comenzó haciendo una auditoría de la aplicación, me la definió y también específico donde se encontraban los puntos de mejora y propuso un planning de acción para el que me pidió confirmación. 

Tras tenerla, comenzó libremente a crear los archivos, añadir sus códigos, todo de manera autónoma, sin ninguna necesidad de mi lado más que responder cuando este me preguntaba qué quería que hiciera en algunos puntos. Tras este proceso, logró desarrollar la aplicación a la primera en unos 6 minutos aproximadamente. 

No obstante, se le olvidó incorporar el calendario dinámico y también el buscador que va filtrando y sugiriendo ciudades al usuario en función de lo que va escribiendo, aunque sí que adaptó la arquitectura a módulos.  

Necesitó un intento más para el calendario y otro más para el buscador, instalando también de manera autónoma. 

Me sorprendieron dos cosas:  

Valoración 

Gemini: un survival rpg de toma de decisiones usando el ecosistema Google

A Gemini se le ha pedido que desarrolle un rpg ambientado en un apocalipsis zombie para 5 jugadores. La web app se conectará a Google Maps y buscará los puntos de interés de la ubicación que se marque, y con eso creará una historia donde, por rondas, cada usuario tendrá que ir tomando decisiones para avanzar y sobrevivir. 

Las repercusiones de las acciones tendrán efectos en los stats de los jugadores (hambre, sed…), los cuales se irán actualizando en un Google Sheet tras cada ronda. La idea es intentar desarrollar una aplicación que conecte con varias de las aplicaciones que Google ofrece. 

Para desarrollar esta app, se ha necesitado un proyecto en Google Cloud para conectar con las APIs de Maps y Google Sheet, con lo que al no estar relacionado con la generación de la app como tal no va a ser tenido en cuenta a la hora de valorar esta implementación en términos de tiempo. 

En un primer momento, me sorprendió que este modelo sí que devolvió todos los códigos en una primera tirada (GPT no quiso hacerlo y me los dio faseados, y Claude fue trabajando archivo por archivo) y todo esto sin llegar al minuto, pese a que este proyecto era bastante más complejo que los anteriores. 

Logró que la aplicación se lanzara de primeras, aunque se encontraron bugs críticos que impedían que la aplicación funcionase: no se podía empezar a jugar ya que la aplicación obligaba a clicar una ubicación para marcar dónde se desarrollaría la historia, y este clic al ocurrir dentro del iframe de Google Maps, pues no se registraba en la aplicación y por tanto no podía iniciarse. 

Tras varios intentos sin éxito, se le pidió que en lugar de seleccionarlo vía clic desarrollase para que fuese el usuario quien insertase la ciudad manualmente, y forzase el lanzamiento de la aplicación a través de un botón. 

Cuando esto se solucionó, una vez ya dentro del juego también se vieron problemas en la integración con Gemini a la hora de generar la historia, acabando en fallos que también rompieron la aplicación (no era capaz de saber qué ruta había que llamar para importar la API de Gemini en el proyecto, pese a estar trabajando con dicho modelo). 

Finalmente pudo arreglarse y pude probar el juego. En líneas generales, es el que más me gusta visualmente. Ningún modelo recibió ninguna orden de qué estilos tenían que desarrollar, y mientras Claude y GPT usaron estilos muy estándar, Gemini intentó simular colores, tipografías, formatos típicos de este tipo de juegos. Sin embargo, la funcionalidad dejaba que desear, era poco profunda y repetitiva, lo cual acababa aburriendo a la hora de jugar. 

En algunos puntos, seguían presentándose fallos pero no eran críticos (durante el juego el mapa no muestra la ubicación elegida sino que se sitúa en Madrid, las decisiones no eran en realidad determinantes ya que todas las partidas acababan al séptimo día con los jugadores muertos por sed, las bajadas de los stats solían ser también las mismas y en la misma cantidad…). 

Valoración 

ChatGPT vs Gemini vs Claude Code: tabla comparativa 

Y ahora la pregunta, ¿cuál elijo para mi proyecto? Pues como todo, depende de lo que busques o necesites. A fin de cuentas, elijas el que elijas podrás cumplir con los objetivos que tengas marcados, todas valen. 

También, es injusto comparar los distintos modelos usando tres herramientas distintas, en aplicaciones con complejidades también distintas. Pero entendía que aportaría más valor para este análisis si se buscase explotar los puntos positivos de cada IA en lugar de elegir un mismo proyecto para todos, donde puede que un modelo supere con creces al resto en el área X y en ese caso poco análisis habría por hacer. 

Ahora, si queréis mi opinión y tuviese que desarrollar un proyecto de cero y estuviese dudando entre herramientas, probablemente haría lo siguiente: 

En cualquier caso, te dejo una tabla comparativa con el análisis hecho para cada proyecto, para que seas tú quien tomes la decisión:

Y con esto, poco más que añadir. Creo que una conclusión interesante de este estudio es que muchas de las preguntas que nos hacíamos hace solo 1 – 2 años han dejado de existir. Ya no hablamos de que ‘‘Esta IA no trabaja bien las imágenes, solo la uso para código’’ y viceversa. O comentarios como ‘La IA no es capaz de darme textos con sentido, no se le entiende cuando habla’. Hoy esa misma aplicación es la que mejor funciona como conversacional. Si usas Claude, prácticamente ni tienes que intervenir en el proceso, poco más que crearte la cuenta. 

Esas dudas ya han dejado de existir en muy poco tiempo. Ya no preguntamos si puede hacerlo, sino más bien qué vamos a usar y por qué. Y quizás cuando tengan control completo sobre las aplicaciones, no tengamos ni siquiera que preguntarnos cuál usaremos porque ya ellas mismas nos las darán. 

Creo que la conclusión más importante vendrá en el futuro, con preguntas que aún no tenemos porque todavía tienen que desarrollarse. Hoy estamos respondiendo las preguntas del ayer, pero mañana responderemos a las de hoy, y estoy seguro que nos seguirá sorprendiendo durante los próximos años. 

Salir de la versión móvil