pocitacova mys ryba reprobedny letadlo cip
header

Vibecoding: Cómo programar una buena aplicación con IA

13 de agosto de 2026

Lang: cs en de es

Con la inteligencia artificial trabajo activamente desde 2023 como usuario, la uso en aplicaciones y el último año también programo con ayuda de la IA. Y en este artículo compartiré mis experiencias con la IA y sobre todo quiero compartir experiencias reales del desarrollo de software con ayuda de la IA.

Vibecoding: Cómo programar una buena aplicación con IA

En 2023 la IA, concretamente ChatGPT, la usaba originalmente sólo por diversión o como un buscador que era capaz de darme rápidamente una respuesta a una pregunta breve. Hoy, sin embargo, la IA ya sabe procesar bien también materiales más largos.
Las imágenes que la IA generaba en 2023 eran cómicas; hoy, en 2026, la IA genera imágenes que en calidad igualan a un grafista o a la realidad.
Todas estas experiencias pasadas las recogí en el artículo sobre la IA de 2023

Ya entonces se podía conectar programáticamente con la IA y sus modelos de lenguaje. Cómo hacerlo está descrito en mi artículo con la guía para usar la API de OpenAI en el lenguaje de programación Python. Es posible así utilizar una IA propia o modelos de IA de terceros. Gracias también a ello realicé una implementación de muestra de un proyecto con IA: Generación automática de informes médicos comprensibles

Hoy, en 2026, es posible ejecutar la IA también localmente, aunque tales modelos son más lentos y sus salidas son de menor calidad. Los grandes modelos con otras herramientas, sin embargo, permiten hoy programar de forma eficiente. El proceso en el que el código no lo escribe el programador, sino la IA, se denomina vibecoding.

Qué es el vibecoding

Vibe coding o escrito de forma abreviada vibecoding, es una manera de programar en la que el programador ya no escribe el código línea por línea y en su lugar se convierte en quien encarga, en el director y en el editor, que comunica sus visiones en lenguaje natural con herramientas avanzadas de IA (como Cursor, Claude o Replit Agent). Todo el proceso se basa en la capacidad de describir qué y cómo se debe crear, y la IA genera el código concreto y a menudo crea también la arquitectura, la lógica y el aspecto concretos. Es un proceso en el que la realización técnica concreta pasa a un segundo plano y es más importante saber formular bien el requisito: qué y cómo se debe hacer. Uno puede así concentrarse más en la creatividad, en idear nuevas funciones y no ocuparse tanto de la implementación concreta. Incluso es posible que también los no programadores sean capaces de crear aplicaciones sencillas o prototipos.

Herramientas de IA

¿Qué herramienta de IA usar? En primer lugar elegirá la herramienta según si es usted un programador de verdad o si es un no programador y quiere crear un programa.

Para los no programadores hay herramientas que se centran en el aspecto y tienen la solución técnica preseleccionada y preparada de antemano y la dejan en segundo plano, porque un profano no lo entiende y ni siquiera le interesa. Puede probar por ejemplo https://stitch.withgoogle.com. Personalmente probé el proyecto https://lovable.dev, que mediante IA crea un proyecto escrito en JavaScript/TypeScript y como almacenamiento utiliza la base de datos Supabase. Rápidamente me generó, según el encargo, una aplicación que pude usar directamente y que era accesible en Internet. Algunas de sus funciones funcionaban, otras no. Sin embargo, no investigué con más detalle a causa de qué no funcionaba y si se podría arreglar de forma fácil o difícil.

Para programadores y técnicos son entonces adecuadas las herramientas Claude Code o Cursor. Para probarlo, la ventaja es que Cursor tiene también un modo gratuito. Yo me suscribí a Cursor, así que ahora lo uso cada día laborable para el desarrollo y la programación de aplicaciones.

Cómo se ve Cursor en un uso real lo puede ver aquí:
captura de pantalla de AI cursor

Claude Code es una herramienta de consola. Cursor es una aplicación gráfica que funciona como IDE. También a Claude Code me suscribí finalmente y ahora uso primordialmente sobre todo Claude Code.

Así se trabaja con Claude Code:
claudecodeai

La programación mediante IA la uso también para proyectos existentes. Hoy me dedico exclusivamente al desarrollo de proyectos de calidad con buena arquitectura y un mínimo de código legacy. En cuanto a las aplicaciones web, en la mayoría de los casos están programadas en el robusto framework PHP Symfony. Y gracias a ello la IA se orienta bien en el código fuente del proyecto y la IA es capaz de modificar el proyecto con calidad.

También he realizado un proyecto completamente desde cero y el desarrollo lo hice desde el principio mediante IA. Se trata de mi plataforma de e-learning en vídeo itdevlearn.cz.

Para el trabajo habitual con texto, para consultas y para generar imágenes uso Gemini, porque tiene una buena interfaz y tengo así una sola IA para el escritorio y para el móvil. Gemini tiene hoy integrada también la generación de imágenes, así que las imágenes las genero a través de él.

De qué me he dado cuenta en el código generado mediante IA

El código de la IA a primera vista parece bueno, funciona e incluso tiene comentarios. Pero cuando lo lee como desarrollador que lo va a mantener durante varios años, se topa con vicios recurrentes:

  • La IA duplica código. En lugar de que la IA use un servicio o un método existente, se escribe la misma lógica de nuevo en otro sitio. Con buenas instrucciones, sin embargo, se puede obligar a la IA a limitar este vicio clásico.
  • La IA genera construcciones modernas complicadas, en las que luego cuesta orientarse. Mi opinión es que es mejor crear código fácilmente legible. Por eso ese código difícil de leer lo mando reescribir a algo más sencillo.
  • La IA intenta añadir un montón de tecnologías nuevas y dependencias que el proyecto no necesita y que luego alguien tiene que mantener y actualizar.
  • O, al contrario, la IA lo escribe todo por su cuenta. Allí donde existe una biblioteca buena, sencilla y depurada, típicamente es mejor usar la biblioteca que dejar que la IA cree más código propio que luego tendrá que mantener.
  • La IA genera pruebas complicadas o prueba tonterías Como resultado hay muchas pruebas, se ejecutan durante mucho tiempo, pero no descubren un error real. Por eso hay que analizar también las pruebas y definir de forma dirigida qué se debe probar.
  • La IA no aprovecha las posibilidades del framework. Típicamente genera código propio para la validación, cuando bastaría con usar una anotación (atributo). En el caso del framework PHP Symfony, mediante anotaciones se puede llevar una propiedad de la entidad hasta el formulario y allí, gracias a la anotación, los campos de entrada del formulario se validan luego automáticamente.
  • La IA se inspira en el código del proyecto incluso donde no tiene sentido. Crea código que es parecido al código circundante, pero en esa función no hace falta, por ejemplo pasa variables que normalmente están directamente disponibles.

Y sobre todo: la IA está dispuesta a programar cualquier cosa. Así que tranquilamente le programará algo que está mal o que no tiene sentido, si se lo encarga así. No le dirá «esto es un disparate», sino que lo hará obedientemente.

Qué hace falta para que la IA haga un buen trabajo

La IA no hace milagros, sino que multiplica lo que ya hay en el proyecto. Sobre una buena base el resultado es excelente, sobre una mala base los problemas sólo se multiplican. Necesita por tanto:

  • Un diseño de calidad de la arquitectura de la aplicación y buen código fuente.
  • Tecnologías robustas Por ejemplo el framework PHP Symfony, que mantiene tanto al desarrollador como a la IA dentro de límites claros.
  • Un desarrollador capaz, que sepa versionar (es decir, git), tenga pensamiento técnico y lógico y entienda las tecnologías utilizadas.

La IA necesita acceso a aquello con lo que debe trabajar: acceso al código fuente, a los archivos e idealmente a la base de datos. Al servidor de producción por principio no le doy acceso a la IA. Por lo demás, el desarrollo lo hago en el ordenador local y la aplicación la ejecuto en docker. Hay que usar git, gracias al cual puede volver a una versión funcional y comparar los cambios. Es una necesidad tener pruebas que idealmente se ejecuten de forma automatizada. Gracias a las pruebas se verifica que la aplicación sigue funcionando igual.

Mi recomendación

Aquí está mi recomendación sobre cómo asignar tareas al agente de IA que le programa la aplicación.

  • Asigne tareas pequeñas y definidas con precisión. Cuanto mayor y más vago sea el encargo, mayor será la probabilidad de que tire el resultado a la basura.
  • No basta con describir sólo cuál debe ser el resultado, sino también cómo debe funcionar técnicamente.. La lógica la puede idear tranquilamente la IA, pero usted debería entender y a continuación confirmar cómo debe funcionar esa funcionalidad.
  • Versione y haga commit a menudo. Antes de cada intervención mayor de la IA tenga un estado limpio del repositorio, para tener adónde volver.
  • Use tecnologías de código abierto. Los proyectos basados en tecnologías de código abierto tienen ventaja, porque la IA, gracias a la documentación y los ejemplos disponibles, los entiende mucho mejor.
  • No suelte la IA sobre un mal proyecto. Modificar mediante IA código espagueti, por ejemplo una web escrita en PHP sin framework, es un riesgo seguro.
  • Deje que la IA le escriba las pruebas unitarias. Ese es un trabajo agradecido para la IA y le ahorrará bastante tiempo.
  • Lea y revise siempre el código después de la IA. La responsabilidad por el resultado sigue siendo del ser humano.

Si tiene un proyecto bien mantenido en PHP/Symfony y mantiene estándares estrictos, entonces la IA le creará por completo la base de una funcionalidad similar en 15 minutos, mientras que otras veces usted tardaba, por ejemplo, dos días. Después ya sólo hace falta ajustar y comprobar el programa. Eso también lleva algo de tiempo, pero si quiere tener seguridad, tiene que invertir ese tiempo.

Riesgos

Seguridad

La IA es capaz de realizar un análisis de los errores típicos en el programa que pueden poner en peligro la estabilidad o la seguridad de la aplicación. Sin embargo, la seguridad viene determinada también por la correcta definición e implementación de los roles y los derechos de acceso. La IA se lo programará tal como usted lo necesita y de modo que funcione. Pero ¿está seguro de que nadie y en ninguna situación tiene acceso a datos que no debe ver? Diversas restricciones se hacen por motivos de seguridad, pero por otro lado limitan al usuario. A menudo es entonces más sencillo hacer los datos más accesibles que exactamente como está definido para el proceso según el cual se debe regir el acceso a los datos.

Rendimiento

El rendimiento depende de la calidad del código y del rendimiento del servidor. Los servidores puede reforzarlos mucho, pero no hasta el infinito y le costará dinero. Es mejor invertir en código de calidad. La IA es capaz de entregar código de calidad, pero no siempre, y por eso un desarrollador experimentado debería revisar el código. Un especialista de TI experimentado además es capaz de detectar los lugares que se pueden simplificar sin limitar la funcionalidad ni otras modificaciones de la aplicación, y con ello acelerar también el desarrollo. Al mismo tiempo, un desarrollador de TI experimentado programará código optimizado en rendimiento allí donde tenga sentido.

Escalabilidad

¿Cree que desplegará la aplicación en la nube y de repente podrá escalarla? Pues se equivoca. Para que una aplicación pueda escalarse, tiene que estar bien diseñada para ello. Típicamente diseñará una aplicación así como microservicios, pero con los microservicios le crece la complejidad y se suman nuevos problemas potenciales. Y en ese momento vuelve a llegar la pregunta de negocio: ¿quiere entregar rápido una aplicación funcional que cubra las necesidades principales, o quiere construir algo escalable? No puede quererlo todo a la vez y con la complejidad crecen los riesgos, incluido el riesgo de fracaso.

Uso práctico de la IA también fuera de la escritura de código

  • Corrección de texto, ya se trate de documentación, un correo electrónico o un artículo.
  • Explicación de un concepto o una abreviatura con la que se topa en un proyecto ajeno.
  • Lluvia de ideas sobre pensamientos. La salida, sin embargo, hay que analizarla y valorarla críticamente, porque la IA le ofrecerá de buen grado también caminos que no tienen sentido.
  • Generación de imágenes y materiales gráficos.

Límites de las herramientas y organización del trabajo

Claude Code tiene un límite en forma de una ventana de cinco horas y, además, un límite diario. Para quien trabaja en el régimen de la clásica jornada de oficina de ocho horas seguidas, eso puede ser un problema. Yo personalmente me levanto temprano por la mañana. Un trozo de trabajo lo hago por la mañana. Antes del mediodía vuelvo al trabajo y la ventana se me resetea entretanto. Después, al caer la tarde. Si por la noche trabajo mucho y largo tiempo y por tanto sobrepaso el límite, la ventana del límite de nuevo consigue resetearse.

Cómo valoro la entrada de la IA en el segmento del desarrollo de software

La IA cambiará el mercado del desarrollo. ¿Perderán los programadores su trabajo? Si el trabajo de alguien consistía sólo en teclear código, entonces esa persona perderá su trabajo. El contenido del trabajo de un desarrollador no es, sin embargo, sólo producir código, sino analizar el encargo, diseñar la arquitectura y sobre todo decidir qué y cómo se debe hacer, y la responsabilidad directa por la calidad del código, que luego usa una persona real y de cuyo funcionamiento depende toda la empresa o incluso todo el Estado.

La calidad del código generado mediante IA es a menudo muy buena, sobre todo si se trata de modificaciones en un proyecto bien mantenido. El problema, sin embargo, puede ser un encargo mal formulado o una precisión insuficiente en la especificación de cómo debe funcionar la aplicación.

La calidad de las futuras aplicaciones que lleguen hasta nosotros, los usuarios, dependerá así principalmente de las decisiones de gestión sobre si se preferirá la rapidez, el precio o el funcionamiento sin problemas.

Para un principiante la IA puede significar producir mejor código del que escribiría él mismo. Para un programador experimentado la IA significará, por el contrario, la producción de código que no será tan bueno como el que escribiría él, pero que seguirá siendo suficiente.

Espero que las herramientas nocode y lowcode estén en retroceso, porque hoy para un profano es sencillo hacer directamente una aplicación mediante IA. En cuanto a la calidad desde el punto de vista de la seguridad, en mi opinión eso será un problema. No porque la IA no tenga en cuenta la seguridad, sino porque la gente no quiere ocuparse de la seguridad. Y es que la seguridad la mayoría de las veces los limita. Otra ventaja es que programando con ayuda de la IA es capaz de entregar una funcionalidad mucho más compleja que sobre una solución preparada de antemano. Una aplicación realizada por un profano con ayuda de la IA puede finalmente tomarla un programador experimentado, para convertir poco a poco la chapuza en una solución funcional y segura que se pueda mantener y desarrollar.

Conclusión

El vibecoding es una forma real de trabajar que uso cada día laborable y que me ahorra un montón de tiempo. Pero eso no significa que el programador dejara de ser necesario, sólo cambia su papel y los requisitos que se le exigen. La IA es un ejecutor excelente y rápido, pero la decisión sobre qué y cómo se debe hacer, y la responsabilidad por el resultado, siguen estando en el ser humano.

Artículos sobre un tema similar

Cómo acelerar la web
Rector: actualización de la aplicación PHP
Lenguaje de programación Go
Análisis de la asignación y fijación de precios del desarrollo de proyectos de software
Programa Python para controlar Docker mediante la API
Cómo utilizar MailCatcher para probar correos electrónicos
API OpenAI de Python
Creación de una aplicación web WebSocket y configuración de un proxy
Gestión de proyectos: desarrollo ágil de software
Cómo ejecutar aplicaciones PHP antiguas
Lo que debe saber un buen programador
Lenguaje de programación Rust
NodeJS: desarrollo, configuración del servidor
Fallo de seguridad de Nette CVE-2020-15227
¿Cómo comparar dos bases de datos iguales?
API REST: API de plataforma
Alojamiento web y de correo personalizado con el software ISP Config
Programación en SQL: PostgreSQL, MySQL/MariaDB
HTTPS: web segura
Base de datos NoSQL Mongo DB
Connecting to Microsoft SQL Server from Linux
¿Cuál es la descripción del trabajo de un programador?
Localización de aplicaciones Python
Qué correo y alojamiento web elegir
Digispark - Programar microcontrolador Atmel ATtiny con Arduino IDE
Desarrollo para procesadores ARM con Arduino IDE
Cómo programar el procesador WiFi ESP8266
Comparación IQRF vs Arduino inalámbrico
¿Qué plataforma debo elegir para mi tienda electrónica? Por ejemplo, Prestashop
Kits de desarrollo y pasarelas para la plataforma inalámbrica IQRF
Kits de desarrollo y pasarelas para la plataforma inalámbrica IQRF

OpenStreetMap y rutas GPS en el mapa de la web
Quickplay
Tarjetas con chip, tanto de contacto como sin contacto, Java Card OpenPlatform
Smartphone abierto con Linux - Openmoko Neo FreeRunner
Desarrollo para módulos inalámbricos con procesador PIC bajo GNU/Linux - IQRF

Boletin informativo

Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email suscripción de noticias.


+