Mi última etapa realmente intensa programando pertenece a una época de Turbo Pascal, Turbo C y Delphi, y fue allá por 1998. Treinta años después he vuelto a escribir software con una frecuencia que no esperaba recuperar. La diferencia es que ahora buena parte del trabajo la hago acompañado por agentes de inteligencia artificial como Claude Code y Codex. El cambio ha sido tan grande que mi problema ya no es si puedo construir una idea, sino decidir cuáles merecen realmente convertirse en un proyecto.
Las claves de volver a programar con IA en 20 segundos
Claude Code y otros agentes han reducido muchísimo la barrera para volver a desarrollar software después de años alejado del código diario.
En pocos meses he creado herramientas open source, aplicaciones nativas y servicios web que utilizo personalmente.
Generar más código no elimina la necesidad de arquitectura, pruebas, seguridad y revisión humana.
La nueva escasez ya no es técnica: son el tiempo, la atención y saber abandonar proyectos.
Todavía recuerdo perfectamente aquella pantalla azul de Borland, hecho hace unos meses encontré la caja original de Borland Pascal con manuales y disquetes de 3,5″, una joya para conservar. Para quienes aprendimos a programar en los años ochenta y noventa, Turbo Pascal era algo más que un compilador. Editor, compilación y ejecución estaban integrados en una experiencia que entonces parecía extraordinariamente rápida.
Turbo Pascal apareció en 1983 por 49,95 dólares, un precio muy agresivo para la época. Las primeras versiones eran tan compactas que el compilador, el entorno de desarrollo y las herramientas cabían en un disquete. Los programas .COM estaban limitados a 64 KB. Visto desde 2026 parece prehistoria informática, pero entonces aquello abría un mundo.
Después llegaron Turbo C y, sobre todo, Delphi. Delphi 1.0 se presentó en febrero de 1995 y consiguió algo que me sigue pareciendo importante: acercar el desarrollo visual sin renunciar a compilar aplicaciones nativas.
Hay además una continuidad histórica que me resulta especialmente curiosa. Anders Hejlsberg estuvo detrás del compilador que dio origen a Turbo Pascal, fue arquitecto jefe de Delphi y posteriormente, ya en Microsoft, diseñó C# y TypeScript. Una parte importante del código que hoy puede generar un agente de IA utiliza lenguajes descendientes de la carrera profesional de la misma persona que estaba detrás de las herramientas con las que muchos empezamos.
Y Delphi tampoco ha muerto. A septiembre de 2026 Embarcadero mantiene RAD Studio 13.1 y prepara la versión 13.2. Incluso dispone ya de Kai, su propia plataforma de IA agéntica integrada en RAD Studio.
Treinta años después hemos acabado juntando las dos épocas.
De escribir cada línea a dirigir el desarrollo
El cambio para mí llegó con herramientas como Claude Code.
No me refiero simplemente al autocompletado que propone la siguiente función. Claude Code puede leer un proyecto, localizar ficheros, modificar código, ejecutar pruebas, utilizar herramientas de terminal y trabajar durante bastante tiempo sobre un objetivo.
Ahí cambia la relación con la programación.
Durante muchos años podía tener una idea y saber aproximadamente cómo construirla, pero el coste en horas hacía que no tuviera sentido empezar. Había que recuperar conocimientos, estudiar nuevas librerías, preparar interfaces, gestionar dependencias y dedicar fines de semana enteros a detalles que no eran precisamente la parte divertida del proyecto.
Ahora puedo concentrarme mucho más en definir qué quiero construir.
Eso no significa escribir «hazme una aplicación» y esperar.
De hecho mi experiencia está siendo casi la contraria. Cuanto más utilizo agentes de programación, más importancia doy al orden. Ficheros como CLAUDE.md, documentación de arquitectura, instrucciones concretas, tests, hooks y pequeñas especificaciones terminan marcando una diferencia enorme. De hecho me queda mucho por aprender para organizarme mucho mejor.
La propia documentación de Claude Code recomienda que las instrucciones sean específicas. «Ejecuta los tests antes de hacer commit» es mucho mejor que decir simplemente «prueba los cambios». Y Anthropic reconoce algo todavía más importante: que Claude intente seguir CLAUDE.md no garantiza su cumplimiento. Para las reglas que no pueden incumplirse existen mecanismos deterministas como los hooks.
Esa diferencia entre pedir y verificar me parece esencial.
También ha cambiado el entorno que rodea al código. El Model Context Protocol (MCP), presentado por Anthropic en noviembre de 2024, fue adoptado después por otras compañías y terminó bajo la Agentic AI Foundation de la Linux Foundation. Resulta difícil imaginar algo más distinto de los entornos bastante cerrados con los que aprendimos a programar hace tres décadas.
De las ideas a programas que realmente utilizo
La consecuencia más evidente de esta nueva forma de trabajar está en mis repositorios y en mi carpeta de aplicaciones.
Uno de los proyectos que he liberado como open source es CrawlForge, un crawler de SEO técnico escrito en Rust. Puede rastrear una web por HTTP, analizar directamente una versión generada antes de desplegarla y comparar dos crawls para detectar qué ha cambiado.
En una prueba real ha procesado 487.621 URLs de un medio con quince años de archivo y millones de imágenes. En otro ensayo comparé 1.800 valores obtenidos por CrawlForge y por una herramienta consolidada: estados HTTP, títulos, descripciones, H1, canonical e indexabilidad.
No hubo diferencias.
Bueno, sí apareció una. Era un <br> dentro de un <h1> y el error estaba en la otra herramienta.
Ese tipo de casos me ha enseñado algo importante sobre programar con IA: el modelo puede producir código, pero la responsabilidad sobre lo que ese código afirma sigue siendo mía.
Otro ejemplo es FlarePurge, una pequeña aplicación para purgar la caché de Cloudflare. Está disponible para diferentes plataformas y su código es abierto para si quieres compilar tu propia versión.
Lo interesante para mí no es todo lo que hace, sino precisamente lo que decidí que no hiciera.
FlarePurge purga caché. Nada más.
DNS, WAF, analítica y otras funciones quedan fuera deliberadamente. Los tokens se almacenan utilizando los mecanismos seguros del sistema y la recomendación es conceder únicamente el permiso necesario para purgar caché.
Poder desarrollar más rápido genera una tentación enorme de añadir funcionalidades porque «cuestan poco». Pero cada función que se añade hoy es código que habrá que entender, probar y mantener mañana.
Otro proyecto al que tengo especial cariño es mboxShell, un visor y buscador de archivos MBOX para terminal, también escrito en Rust y publicado con licencia MIT. Una idea para poder leer mis backups de correo de Google Takeout y del que podéis encontrar una versión con GUI para MacOS y Windows en Mbox Viewer pro que también cito más abajo.
Está pensado para poder trabajar con buzones enormes sin cargar todo el fichero en memoria. Un MBOX de 100 GB puede utilizar aproximadamente la misma memoria que uno de 1 GB porque el procesamiento se realiza en streaming.
Y aquí apareció uno de esos bugs que explican por qué sigo sin fiarme ciegamente del código generado.
Trabajando con una exportación de Google Groups descubrí un formato de fecha peculiar. Cuando el parser no entendía correctamente una de esas fechas, el fallback no fallaba de forma espectacular. Hacía algo bastante peor: devolvía una fecha aparentemente válida pero incorrecta.
Ese es el tipo de error peligroso.
Un programa que se cae obliga a investigar. Uno que devuelve silenciosamente un dato plausible puede permanecer equivocado durante meses.
También encontré un problema de precedencia en las búsquedas booleanas. En un buzón de 6.787 mensajes, una consulta que debía devolver 49 resultados podía terminar mostrando 2.102.
Ninguna inteligencia artificial sustituye comprobar que 49 siguen siendo 49.
Construir cosas para resolver mis propios problemas
Hay además una categoría de proyectos que probablemente explica mejor por qué he vuelto a disfrutar programando: herramientas que quería utilizar yo mismo.
Polen Madrid nació para consultar de forma sencilla los datos de polen de la Red Palinológica de la Comunidad de Madrid. Incluye mapa, histórico, calendario y alertas. Los datos proceden de 11 estaciones y cubren numerosos tipos de polen.
Una de las decisiones que más me gusta no tiene nada de técnicamente espectacular: las alertas solo se envían durante la temporada del alérgeno elegido. Además de una API en el que tenemos ya como 10 usuarios que se conectan de manera gratuita para consumir los datos del polen.
Poder mandar un correo todos los días no significa que haya que hacerlo.
meteo.es es otro proyecto en el que he trabajado para automatizar gran parte de la publicación y organización de información meteorológica. Combina fuentes como AEMET OpenData, Open-Meteo y RainViewer y tiene cientos de páginas de contenido estructurado. Incluso publica un llms.txt para facilitar que sistemas de IA entiendan el sitio.
Resulta bastante curioso haber pasado de aprender a programar cuando Internet apenas formaba parte de nuestra vida a preparar ahora una web para que también pueda ser interpretada por modelos de lenguaje.
También he construido spy on web, que cruza dominios, direcciones IP, nameservers, certificados y determinados identificadores para encontrar relaciones entre sitios web. Surgió porque necesitaba recuperar una funcionalidad que ya no encontraba de forma suficientemente fiable en las herramientas que utilizaba.
Esta última tiene algo especialmente divertido. Su viejo <title> todavía contiene una sucesión de términos de otra época: Ajax, Ruby on Rails, PHP, MySQL, ASP, Java, Perl, CGI, Linux, Windows… y Delphi.
He acabado regresando a Delphi aunque sea dentro de una etiqueta HTML.
Cuando una idea termina en la App Store
La Inteligencia Artificial también me ha permitido entrar en un terreno en el que antes probablemente no habría invertido el tiempo necesario: las aplicaciones nativas.
DocProtect (para MacOS, iOS y Android) nació para una necesidad muy concreta: poder preparar documentos que hay que enviar a terceros añadiendo marcas de agua o ocultando información sensible. El procesamiento se realiza en el dispositivo. Algo que existe, no he inventado nada, pero me apetecía crear mi propia versión gratis.
Con Files.co PDF Suite (para MacOS y Windows) he seguido una filosofía parecida. Muchas operaciones sobre PDF pueden ejecutarse localmente mediante WebAssembly, sin que los documentos tengan que viajar a un servidor para ser procesados.
Mbox Viewer Pro (para MacOS y Windows) lleva la idea de mboxShell a una aplicación gráfica para macOS y Windows. La filosofía sigue siendo bastante sencilla: trabajar offline una copia de seguridad de un mbox, en modo lectura y sin convertir un archivo privado de correo en un fichero que haya que subir a la nube.
Pero quizá el proyecto que mejor representa todo este reencuentro sea iSkitch.
Utilicé Skitch durante años. Evernote retiró en 2016 las versiones para iOS, Android y Windows, mientras que la edición de Mac continuó disponible. El problema es que su última actualización en la Mac App Store data de julio de 2020.
Así que terminé construyendo mi propia alternativa.
iSkitch es una aplicación nativa para macOS, ocupa alrededor de 1,8 MB y ofrece herramientas de anotación, flechas, texto, formas, pixelado y desenfoque.
Hace unos años probablemente habría pensado que desarrollar, traducir, empaquetar y publicar una alternativa nativa era demasiado trabajo para una necesidad tan concreta.
Ahora la ecuación ha cambiado.
Y precisamente por eso aparece un problema nuevo.
Producir más código no significa producir mejor software
Los datos disponibles sobre programación asistida por IA son bastante menos triunfalistas de lo que podría parecer viendo la velocidad a la que se están adoptando estas herramientas.
La encuesta de desarrolladores de Stack Overflow de 2025 encontró que el 84 % utilizaba o tenía previsto utilizar herramientas de IA. Sin embargo, solo un 3,1 % declaraba confiar mucho en la precisión de sus resultados y un 46 % desconfiaba activamente.
La principal frustración, citada por un 66 %, eran las soluciones que están «casi bien».
Ese «casi» me parece una descripción magnífica del problema.
Un estudio de METR publicado en 2025 añadió un resultado todavía más incómodo. Dieciséis desarrolladores experimentados trabajando sobre repositorios que conocían bien esperaban que la IA los hiciera un 24 % más rápidos. En aquel experimento terminaron tardando un 19 % más.
Lo interesante es que después seguían creyendo que habían sido aproximadamente un 20 % más rápidos.
METR ha actualizado posteriormente sus conclusiones y advierte de que esos resultados no deben generalizarse. La adopción ha cambiado rápidamente y los propios investigadores consideran probable que sus mediciones infravaloren parte del beneficio actual.
Mi caso, además, es casi el opuesto al estudiado inicialmente por METR.
No estoy intentando que un agente comprenda de repente un repositorio gigantesco en el que llevo diez años trabajando. Muchos de mis proyectos empiezan desde cero, con un objetivo muy delimitado y una arquitectura que puedo adaptar desde el primer día al trabajo con agentes.
Ahí la inteligencia artficial me está resultando extraordinariamente productiva.
Pero productividad y calidad siguen sin ser sinónimos.
DORA lo resumió muy bien en su investigación sobre desarrollo asistido por IA: la Inteligencia Artificial funciona como un amplificador. Un proceso ordenado puede hacerse mejor; uno desordenado puede producir desorden a mayor velocidad.
El código compila. Ahora hay que comprobar si es seguro
La seguridad es probablemente la parte en la que menos margen existe para dejarse llevar por la sensación de velocidad.
Veracode ha probado más de 150 modelos en tareas de programación y encontró una tasa de aprobado de seguridad del 55 %, pese a que la corrección sintáctica superaba ampliamente el 95 %.
Ese contraste debería estar pegado al monitor de cualquiera que utilice agentes.
El código sintácticamente correcto ya no es el problema. El seguro, sí.
Hay riesgos menos evidentes. Una investigación presentada en USENIX Security estudió 576.000 muestras generadas por 16 modelos y encontró más de 205.000 nombres únicos de paquetes inexistentes inventados por los modelos.
El peligro no es únicamente que una IA se invente una dependencia. Algunos nombres se repiten. Si un atacante registra uno de esos paquetes imaginarios, puede convertir una alucinación predecible en un ataque contra la cadena de suministro.
GitGuardian encontró además 28,65 millones de nuevos secretos expuestos en commits públicos de GitHub durante 2025 y miles dentro de configuraciones MCP públicas.
Por eso intento tratar al agente como lo que es: una herramienta extremadamente capaz a la que no se debe conceder confianza ilimitada.
Las dependencias se comprueban. Los secretos se escanean. Los tests se ejecutan. El código sensible se revisa. Los permisos se limitan. Y las reglas que deben cumplirse siempre no deberían depender únicamente de que el modelo recuerde una frase escrita en un fichero Markdown.
La velocidad cambia el proceso, pero no elimina la ingeniería.
El problema que no tenía hace 30 años: saber qué no construir
Hay una consecuencia de todo esto que me está resultando incluso más interesante que la propia programación.
Tengo demasiadas ideas que ahora son técnicamente posibles. Y poco tiempo en mis fines de semana para llevarlas a cabo.
Antes existía un filtro natural. Una idea podía parecer buena, pero si requería tres meses de desarrollo moría antes de empezar. Ahora ese filtro se ha debilitado muchísimo.
Y eso puede ser peligroso.
Porque crear la primera versión cuesta cada vez menos, pero mantener veinte proyectos sigue costando más que mantener cinco. Hay dominios, actualizaciones, certificados, dependencias, tiendas de aplicaciones, soporte, traducciones, documentación, seguridad y usuarios.
La Inteligencia Artificial reduce el coste de creación. No convierte la atención humana en infinita.
GenPic utilizaba inteligencia artificial para transformar fotografías en retratos con decenas de estilos. El usuario obtenía una vista previa gratuita con marca de agua y solo tenía que pagar si quería descargar el resultado final.
Funcionaba técnicamente.
El problema era el producto.
Una vista previa gratuita suficientemente buena ya podía servir para enseñársela a los amigos o compartir la broma por WhatsApp. En cierto modo GenPic competía contra su propia versión gratuita.
Así que he decidido dejar de aceptar nuevos retratos y compras (aunque seamos francos he vendido un total de 0 euros).
Hace unos años probablemente habría mantenido el proyecto durante más tiempo simplemente porque ya había invertido horas en él. Ahora intento verlo de otra manera.
El desperdicio no es lo que ya se ha gastado. El desperdicio puede ser el siguiente minuto dedicado a algo que ya no merece ese minuto.
La idea conecta con los kill criteria que Annie Duke desarrolla en Quit: definir de antemano qué condiciones justifican seguir invirtiendo tiempo y cuáles deberían obligar a parar.
Me parece una disciplina especialmente importante ahora que construir software es tan barato.
Mi experiencia con Claude Code no me ha llevado a pensar que todo el mundo pueda convertirse mágicamente en desarrollador ni que los programadores hayan dejado de ser necesarios. Más bien me ha devuelto algo que había perdido durante años: la capacidad de convertir una idea pequeña en software real sin que el coste inicial la mate.
Eso es extraordinariamente divertido.
También obliga a aprender otra habilidad.
Hace treinta años el reto era conseguir que aquello que tenía en la cabeza cupiera en memoria, compilara y funcionara. Hoy puedo levantar proyectos que entonces me habrían parecido imposibles para una sola persona.
Mi escasez ya no está en las herramientas.
Está en decidir dónde merece la pena utilizarlas.
Y quizá ese sea el aprendizaje más importante de esta vuelta al código: he pasado de preguntarme si soy capaz de construir algo a preguntarme si debería construirlo.
Preguntas frecuentes
¿Se puede volver a programar después de muchos años gracias a la Inteligencia Artificial?
Los agentes de programación reducen mucho el esfuerzo necesario para recuperar conocimientos y trabajar con lenguajes o frameworks nuevos. Aun así, entender arquitectura, datos, seguridad y lógica sigue siendo muy importante para detectar cuándo el código generado está equivocado.
¿Qué diferencia hay entre Claude Code y un autocompletado tradicional?
Claude Code puede trabajar sobre un proyecto completo: leer y modificar varios archivos, ejecutar comandos y tests y seguir instrucciones de desarrollo. Eso permite delegar tareas más amplias que completar unas líneas de código.
¿Es seguro utilizar código generado por inteligencia artificial?
No debe darse por seguro simplemente porque compile o pase pruebas funcionales. Estudios de seguridad han encontrado vulnerabilidades, dependencias inexistentes y exposición de secretos, por lo que siguen siendo necesarios revisión, análisis de seguridad y controles automáticos.
¿Cuál es el mayor problema de programar más rápido con IA?
En mi caso ya no es conseguir construir el software, sino seleccionar proyectos y mantenerlos. La reducción del coste inicial hace mucho más fácil comenzar ideas que después compiten por tiempo, mantenimiento y atención.
Fuentes:
Dossier interno de trabajo y comprobaciones de proyectos propios, actualizado el 6 de septiembre de 2026.
Embarcadero, documentación e historia de Turbo Pascal, Delphi y RAD Studio. A 6 de septiembre de 2026, RAD Studio 13.1 está disponible y 13.2 sigue anunciada como próxima versión.
Anthropic, documentación oficial de Claude Code, CLAUDE.md, Agent Skills y Model Context Protocol.
OpenAI, documentación y anuncio de Codex.
Stack Overflow Developer Survey 2025.
Google Cloud / DORA, State of AI-Assisted Software Development y ROI of AI-assisted Software Development.
METR, estudio sobre productividad de desarrolladores con IA y actualización de febrero de 2026.
Veracode, GenAI Code Security Report.
USENIX Security, investigación sobre alucinaciones de paquetes en código generado por modelos.