Kabosu - Creando cosas

Logo de la página. Gato esférico con colores verdoso.

Opinión: usando LLMs para programar

Publicado: 2025-10-13

Etiquetas: IA, Opinión


Buenos días, tardes o noches:

En este artículo quiero ofrecer mi opinión sobre el uso de las IAs generativas para programar. Y valorar un poco desde mi experiencia personal si son útiles o no.

Como resumen si no te quieres leer todo este tocho: lo uso en el trabajo un poco por obligación, en mis proyectos personales prefiero programar yo todo. En cuanto a la calidad del código generado me parece que han mejorado mucho con respecto a lo que podían hacer hace un par de año. Ahora entraré más en detalle en todo esto.

LLMs en mi trabajo

En mi trabajo hace ya bastantes meses que decidieron apostarlo todo por la IA. Nos han dado acceso corporativo a ChatGPT, licencias de Cursor, Github Copilot, Claude, Glean y alguna más que seguro que me dejo. Cada mes se deben de gastar cientos de euros por persona en distintas IAs.

Este empuje siguiendo las modas empezó hace más de un año. Entonces probé un poco estas IAs porque me gusta formarme mis propias opiniones pero no las usaba demasiado. No les encontraba mucha utilidad. La única que me aportaba algo era una llamada Glean que era capaz de buscar entre las conversaciones, documentos internos y cosas así por lo que era capaz de responder preguntas específicas sobre los proyectos de la empresa. Podía preguntarle: "¿Cuál es el estado del servicio ABC?" y me resumía hilos de Slack, documentos de Google Drive o emails sobre el tema. Si yo pudiera hacer las mismas búsquedas combinadas que esa tal Glean hace no me haría falta preguntarle a la IA.

Pero, hace un par de meses el liderazgo decidió que querían ver si la IA había mejorado la productividad de la empresa. Querían medir el número de pull requests que hacemos y qué porcentaje de las líneas han sido modificadas por la IA. En principio me pareció una buena idea que intentasen medir si realmente son útiles o no todas estas herramientas aunque intuía que, si los resultados eran que las IAs han empeorado la productividad, su acción no iba a ser eliminarlas. Nos iban a decir que las estábamos usando mal y nos ofrecerían más cursos, seminarios, etc.

Mis miedos se cumplieron: unas semanas después me escribió mi jefe diciendo que había visto mis métricas y tenía que hacer más pull requests y más líneas con IA o peligraba mi "performance review". Desde entonces mi uso de la IA aumentó por razones obvias, incluso para tonterías que haría más rápido a mano, para poder subir el porcentaje de líneas generadas con LLM.

Cómo funcionan las IAs para programar

Antes de seguir quiero explicar un poco cómo funcionan estas IAs hoy en día. Leyendo Mastodon noto cierto desconocimiento sobre cómo programan. Creo que mucha gente tiene en la cabeza los primeros LLMs que salieron hace unos años. Ya no es abrir ChatGPT, decirle "escríbeme un programa que haga tal cosa" y copiar-pegar el código.

Voy a usar el ejemplo de Cursor que es el que tenemos en el trabajo pero Microsoft tiene su Copilot y seguramente Google y Amazon tendrán algo propio también. Cursor es un entorno de desarrollo en el que la IA está completamente integrada. Creo que han cogido el Visual Studio Code que es de código abierto y le han metido sus cosas por encima. Tiene una versión gratuita muy limitada y suscripciones de pago de 20 o 200 dólares al mes. El precio me parece una bestialidad.

Los entornos de desarrollo integrados (IDEs en inglés) permiten compilar, ejecutar tests, realizar análisis, también tienen una terminal para ejecutar comandos y otras muchas opciones para hacer la tarea de la programación más sencilla. Yo soy feliz abriendo una terminal con vim y escribiendo todos los comandos a mano pero mucha gente no puede vivir sin los IDEs. Cursor y otras IAs similares son lo que se llama "agentes". En concreto, el agente de Cursor puede realizar acciones en el IDE como si fuera una persona.

Cuando le pides que programe algo mirará primero los ficheros que tienes abiertos en Cursor. Durante su ejecución puedes ir viendo en un panel lateral las distintas acciones que toma. Te muestra si está leyendo otros ficheros del proyecto o buscando en internet documentación sobre una librería. Cuando termina con su tarea se intenta asegurar de que todo funciona bien compilando y ejecutando los tests por su cuenta. Si hay algún problema, lee el error que haya salido y lo intenta arreglar. Al final del proceso hace un pequeño resumen de los cambios y a veces escribe un documento de texto explicando otras soluciones, futuras mejoras, etc. Como se ve, no es solo generar un código según el prompt sino que obtiene información de diversas fuentes y es capaz (a veces, no siempre) de solucionar sus propios errores.

Lo de buscar en internet y ejecutar comandos por su cuenta puedes o aceptar las acciones una a una o confiar en la IA y dejarle que haga lo que quiera. No se recomienda dejarla a su libre albedrío porque puede romper cosas del ordenador o descargarse cosas raras de internet pero como no es mi portátil ni mi código y la empresa nos insiste en que usemos IA yo le he dado permiso de todo. Solo se vive una vez.

Con Python y JavaScript me parece que funciona bastante bien para tareas o medianas, seguramente porque en internet hay muchísimo código en esos lenguajes. Con Java también he tenido buenos resultados pero creo que falla un poco más.

Cómo uso yo la IA para programar en el trabajo

En las últimas semanas estoy usando el agente este de Cursor como mi asistente personal. Le pongo una tarea de las que tengo asignadas y sigo con mi vida. Hago reuniones o me voy a jugar a la Switch 2. Al rato vuelvo y miro lo que ha hecho.

Ya más o menos le he pillado el punto y sé cómo proporcionarle las tareas. Si son los suficientemente acotadas suele hacerlo bastante bien. Por ejemplo le puedo decir que cambie una librería que se ha quedado desfasada por una versión más nueva y aplique los cambios que sean necesarios. Suele buscar en internet qué ha cambiado desde la versión que hay en mi proyecto a la último y va actualizando cosas. Tienen que ser cambios pequeños para que yo los pueda revisar rápidamente sin perder mucho tiempo. Si luego o al día siguiente vuelvo y me gusta el resultado, lo envío como PR para que lo revisen en mi equipo. Me he hecho una lista con decenas de pequeñas tareas y cada día le pido una. Así voy aumentando mi número de PRs y los jefes están contentos. Cuando tengo que hacer algo fuera de esta lista de chorradas normalmente lo programo yo mismo pero cuando no estoy programando dejo al agente haciendo cosas. He probado a tener un par de instancias de Cursor haciendo cosas en paralelo y funciona pero a mí me cuesta organizar en mi cabeza qué está haciendo cada una. Escriben muchísimo texto mientras trabajan en sus tareas así que puede ser difícil coger el hilo si tienes varias cosas entre manos.

La IA no ha mejorado mi productividad porque solo le encargo hacer cosas secundarias pero poco a poco va mejorando el servicio que mantengo. Quitando warnings, actualizando dependencias, eliminando código que no se usa. Es uno de los servicios más organizados de la empresa ahora mismo.

Como he dicho más arriba, me ha sorprendido para bien. Yo había hecho pruebas con ChatGPT pidiéndole cosas de código y los resultados eran bastante regulares pero estos agentes son capaces de compilar, ejecutar e iterar en la solución hasta que consiguen algo que funciona.

No está para nada listo para hacer "vibe coding" por mucho que insistan los "bros". Para que gente sin conocimientos se haga sus propios programas. Tengo que estar atento y asegurarme de que no haya hecho cosas raras, por eso limito los cambios a cosas sencillas.

He visto al agente de Cursor hacer cagadas monumentales. Por ejemplo, escribí un programa en Python pero no guardé el fichero. Le pedí que escribiera tests para el mismo. Como está integrado en el IDE podía ver mi código a pesar de que no estaba guardado en el disco y escribió unos tests bastante decentes. Se puso a ejecutarlos y obviamente fallaban porque se estaban ejecutando contra un fichero en blanco que no había guardado. La IA, muy humanamente diría yo, entró en un bucle de desesperación tocando cosas, ejecutando tests, tocando cosas, ejecutando otra vez. Si una IA pudiera pensar en suicidarse esta estaba llegando a ese punto. Al final me dí cuenta y la paré.

No creo que valga la pena pagar 200 dólares al mes por esto. Tampoco me parece inteligente por parte de la empresa exigir un cierto número de PRs o porcentaje de código generado por IA. Son cosas que se pueden trucar fácilmente y pueden llevar a introducir problemas graves en el código.

Cómo uso yo la IA para programar en mis proyectos personales

No la uso. Así de simple. Programar es una de las cosas que más me gusta y me divierte mucho. Escribir cosas y que luego el ordenador las ejecute millones de veces más rápido de que lo haría una persona me parece casi mágico. Quizá tengo esa mentalidad de artesano que se fabrica un mueble pudiendo comprarlo en Ikea y no perder el tiempo.

Además yo puedo revisar el código que genera pero creo que me da un conocimiento mucho mayor si he escrito yo cada línea. Supongo que es como la gente que estudia escribiendo el texto que quiere memorizar porque al escribir a mano se retiene más. Escribiendo con el teclado retiene más que leyendo lo que ha escupido una IA.

Esto desde el punto de vista práctico. Por supuesto hay otras consideraciones éticas como el consumo energético, el robo de datos para entrenar o la enorme burbuja económica. Como ya he dicho en algún artículo anterior: no me gustan estos modelos gigantescos que necesitan un centro de datos para escribir un programa "hola mundo". Enviar todos nuestros datos y nuevas preguntas más íntimas a una empresa me parece muy mala idea. Estoy abierto y a veces uso LLMs más pequeñas que ejecuto localmente. Funcionan un poco peor pero tienen un consumo mucho menor y respectan nuestra privacidad.


Artículo anterior: Reinstalado mis máquinas (plan)