Herramientas de programación con IA, cientos de sesiones: una comparación honesta
El mercado de asistentes de programación con IA se ha fragmentado de una forma que dificulta una comparación honesta. El material comercial es uniformemente optimista, las pruebas de rendimiento se diseñan para favorecer los puntos fuertes de cada herramienta y quienes escriben la mayoría de las comparativas han dedicado unas horas a cada producto, en lugar de los meses de uso operativo real que permiten detectar los patrones importantes. Tras cientos de sesiones con Claude Code, Cursor, Gemini CLI, OpenCode y Qwen Code en bases de código en producción, no en proyectos de prueba, ha surgido una visión más honesta. Estas observaciones reflejan las versiones de las herramientas que utilizamos hasta noviembre de 2025; las capacidades, los límites y los precios cambian rápidamente, por lo que conviene consultar la documentación actual de los proveedores antes de basarse en una afirmación concreta.
El hallazgo principal no es que una herramienta sea universalmente mejor. Cada una tiene un objetivo de optimización distinto, que solo se hace visible con el uso prolongado. Entender para qué se diseñó realmente cada herramienta ayuda a explicar tanto sus fortalezas como sus formas de fallar.
Claude Code: la herramienta de trabajo centrada en la terminal
Claude Code ocupa una posición diferenciada: es una herramienta CLI con amplias capacidades de agente, en lugar de una extensión de editor que añade un chat a un flujo de trabajo existente. Esta decisión de diseño tiene consecuencias que se vuelven más evidentes con el tiempo.
Su fortaleza es la autonomía en tareas de varios pasos. Con una especificación bien delimitada, Claude Code lee los archivos pertinentes, entiende los patrones existentes, escribe la implementación, ejecuta las pruebas y corrige los fallos sin exigir que el desarrollador dirija cada paso. Su gestión de la ventana de contexto es la mejor entre las herramientas probadas: maneja bases de código grandes con soltura y mantiene un estado coherente durante sesiones largas, algo que resulta difícil para otras herramientas.
En la práctica, esta autonomía tiene ventajas y riesgos. La misma capacidad que hace excelente a Claude Code para implementaciones estructuradas lo lleva a excederse ocasionalmente en tareas poco definidas. Si recibe una instrucción vaga en una base de código grande, tomará decisiones, algunas de las cuales pueden no ser las que usted quería. La lección del uso prolongado es que Claude Code recompensa el rigor en las especificaciones: la calidad del resultado depende directamente de la calidad de la instrucción. Quienes invierten en planificación estructurada —especificaciones, criterios de aceptación y restricciones explícitas— obtienen resultados considerablemente mejores que quienes trabajan mediante conversación informal.
El diseño centrado en la terminal también hace que la integración con el IDE sea secundaria. Quienes quieren sugerencias en línea, autocompletado en tiempo real con la tecla de tabulación y un panel de chat integrado en el editor encontrarán este flujo menos natural que el de Cursor. Claude Code está optimizado para desarrolladores que piensan en tareas, no en líneas.
Cursor: la referencia de asistencia integrada en el IDE
Cursor sigue siendo la referencia para la asistencia de IA en línea. Su autocompletado con la tecla de tabulación es realmente bueno: no porque sugiera algo útil de vez en cuando, sino porque predice bloques de varias líneas que respetan el estilo y las convenciones del archivo con precisión suficiente para cambiar el ritmo de escritura. Tras usarlo durante bastante tiempo, prescindir de él se siente como un retroceso.
Los modos de composición y agente han madurado considerablemente. Para cambios en uno o pocos archivos con un contexto claro, Cursor produce modificaciones limpias y bien delimitadas. Su flujo de revisión de diferencias en línea, que permite ver exactamente qué cambiará antes de aceptarlo, es el más cómodo de esta comparativa.
Los fallos aparecen en cambios más grandes y transversales. La recuperación de contexto de Cursor es buena, pero no excepcional: a veces no detecta que un patrón que está implementando ya existe en otra parte de la base de código o propone un enfoque incompatible con convenciones establecidas en un archivo que no incorporó al contexto. En tareas pequeñas o medianas esto es manejable. En cambios de arquitectura que abarcan muchos archivos exige más orientación que el análisis inicial, más exhaustivo, de Claude Code.
El modelo comercial también merece atención. Los niveles de precios de Cursor generan fricción para los equipos y los límites de solicitudes de ciertos modelos pueden interrumpir el trabajo en momentos inoportunos. Para un desarrollador individual es una molestia menor. Para un equipo es una carga de coordinación que se acumula.
Gemini CLI: la apuesta de Google por la infraestructura
Gemini CLI llegó con el respaldo de la infraestructura de Google y una ventana de contexto lo bastante grande como para rara vez tener problemas con el tamaño de la base de código. En capacidad bruta —cuánto código puede analizar en una sola instrucción— supera a la mayoría de las alternativas. Para quien trabaja con un monorepositorio realmente grande, esto importa.
Sin embargo, el tamaño de la ventana de contexto no suele ser el factor limitante en una sesión de programación. Importa más cómo utiliza la herramienta ese contexto, y el comportamiento de Gemini CLI ha sido inconsistente en nuestras sesiones. Las respuestas suelen ser extensas: explica largamente lo que va a hacer en vez de hacerlo. El código, aunque generalmente correcto, refleja a veces una preferencia por patrones de manual frente a las convenciones prácticas de las bases de código reales.
La integración con el ecosistema de Google está bien resuelta, como cabría esperar. Para equipos que ya utilizan Google Cloud —Cloud Run, BigQuery o Firebase— Gemini CLI tiene un conocimiento nativo que otras herramientas no ofrecen. Entiende la configuración de IAM, sugiere las bibliotecas cliente adecuadas y genera configuraciones de despliegue que funcionan, en lugar de necesitar correcciones importantes. Fuera del ecosistema de Google, esta ventaja desaparece.
El soporte de servidores MCP es destacable. Gemini CLI ha invertido en el ecosistema de Model Context Protocol, lo que le permite conectarse a fuentes de datos y herramientas externas y ampliar su utilidad más allá de generar código. Los equipos que construyen sobre infraestructura nativa de MCP encontrarán un encaje más natural que con herramientas que incorporan el uso de herramientas como un añadido secundario.
OpenCode: la propuesta de configurabilidad
OpenCode se presenta como una herramienta de terminal flexible e independiente del modelo: permite utilizar claves de API propias, configurar los modelos preferidos y ejecutar inferencia local o remota. Para quienes quieren controlar todo el stack, la propuesta tiene valor real.
La experiencia práctica ha sido desigual. La configurabilidad que atrae a usuarios avanzados también implica más preparación, más manejo de casos particulares y menos refinamiento en flujos de trabajo que otras herramientas han perfeccionado con extensas pruebas de usuarios. La herramienta funciona y su arquitectura independiente del modelo es técnicamente sólida, pero exige una gestión más activa que las herramientas con valores predeterminados definidos.
OpenCode encuentra su lugar en entornos sin conexión o aislados de la red, así como en organizaciones cuyos requisitos de residencia de datos impiden enviar código a API de terceros. Poder utilizar modelos locales mediante Ollama u otros servidores de inferencia es muy útil en estos casos. Para los demás, la fricción suele superar el beneficio de la configurabilidad frente a herramientas que han dedicado más ingeniería a la experiencia predeterminada.
Qwen Code: la alternativa de código abierto
Qwen Code, un agente de código abierto para la terminal adaptado de Gemini CLI y con una integración profunda con la familia de modelos de código abierto de Qwen, representa otro punto de la relación entre capacidad y costo. Al funcionar con modelos que pueden autoalojarse, ofrece una estructura de costos que las API comerciales no pueden igualar a gran volumen. Para equipos que generan grandes cantidades de código —documentación, pruebas o código repetitivo— el perfil de costos es considerablemente distinto.
Su límite de capacidad es real. En razonamiento arquitectónico complejo, detección de errores sutiles y refactorizaciones de varios archivos, Qwen Code queda por detrás de las herramientas comerciales. La brecha se ha reducido con cada generación de modelos, pero en trabajos de producción donde un cambio incorrecto tiene un costo elevado, la diferencia de calidad sigue influyendo en la elección.
Qwen Code ha demostrado valor en la generación de grandes volúmenes de contenido de menor riesgo, especialmente en contextos multilingües. La capacidad del modelo en chino es sólida, lo que importa para equipos que trabajan con bases de código o documentación tanto en inglés como en chino.
El patrón que realmente importa
Tras cientos de sesiones, la observación más relevante no es qué herramienta es la mejor, sino en qué condiciones tiene éxito cada una. Todas fallan de formas previsibles cuando reciben instrucciones ambiguas sobre bases de código desconocidas. Todas funcionan bien cuando reciben tareas claras, contexto pertinente y la dirección de alguien que entiende suficientemente su forma de trabajar para orientarlas con eficacia.
Quienes más aprovechan las herramientas de programación con IA no son quienes encontraron la mejor herramienta. Son quienes desarrollaron la disciplina de trabajar con ellas según su funcionamiento: invertir en especificaciones de calidad, aportar restricciones explícitas, revisar con cuidado los resultados y tratar la IA como una colaboradora capaz pero con contexto limitado, en lugar de un sustituto autónomo del criterio de ingeniería.
La herramienta importa. La disciplina de quien la utiliza importa más.
Artículos relacionados
- Desarrollo con agentes de IA: lo que realmente funciona en producción — la distancia entre los resultados de pruebas de rendimiento y la fiabilidad operativa en flujos de trabajo con agentes.
- Desarrollo basado en especificaciones con asistentes de programación con IA — por qué las especificaciones estructuradas superan consistentemente a las instrucciones conversacionales en tareas complejas.
- LLM autoalojados para generar código: una evaluación práctica — cuándo tiene sentido económico la inferencia local y qué se sacrifica para obtenerla.