
A principios de febrero de 2025, Andrej Karpathy acuñó el término “vibe coding” en un tuit que rápidamente capturó la imaginación del mundo tecnológico. En cuestión de semanas, este concepto se extendió desde las redes sociales hasta medios tradicionales como The New York Times, Ars Technica y The Guardian. Pero, como ocurre con muchos términos que se popularizan rápidamente, crece la preocupación de que “vibe coding” esté siendo malinterpretado y mal utilizado.
¿Qué es exactamente el Vibe Coding?
Según la definición original de Karpathy, vibe coding es un enfoque específico en el que “te entregas completamente a las vibras, abrazas lo exponencial y te olvidas de que el código siquiera existe”. No se trata simplemente de programar con ayuda de la inteligencia artificial, sino de una metodología concreta en la que delegas por completo la comprensión del código a modelos de lenguaje (LLMs), aceptas el código generado por la IA sin revisar los diffs, solucionas errores copiando directamente los mensajes al asistente de IA, y sorteas los fallos que esta no puede corregir pidiéndole enfoques alternativos. El código crece más allá de tu comprensión personal.
Como dijo Karpathy: “Estoy creando un proyecto o una aplicación web, pero en realidad no estoy programando: simplemente veo cosas, digo cosas, ejecuto cosas y copio y pego cosas, y en su mayoría funciona.”
Vibe Coding vs. Programación responsable asistida por IA
Existe una distinción crítica entre el vibe coding y otras formas de desarrollo asistido por IA. Los ingenieros de software profesionales que utilizan LLMs como herramientas suelen revisar todo el código generado por la IA de manera exhaustiva, asegurándose de poder explicar la funcionalidad del código a otros, probarlo rigurosamente antes de su implementación, considerar factores como el rendimiento, la seguridad y la mantenibilidad, y tomar decisiones informadas en función de los requisitos.
El artículo afirma explícitamente que si estás revisando, probando y comprendiendo completamente el código que un LLM escribe para ti, “eso no es vibe coding, es desarrollo de software”.
La mecánica técnica detrás del Vibe Coding
El vibe coding suele emplear herramientas como LLMs modernos como Claude 3.7 Sonnet o GPT-4, interfaces específicas para código como Cursor Composer, herramientas de transcripción por voz como SuperWhisper para minimizar el uso del teclado, y entornos de sandbox que limitan el daño potencial del código no probado.
El flujo de trabajo difiere significativamente de la programación tradicional. Los desarrolladores describen lo que quieren en términos conversacionales, el LLM produce código funcional sin pasos intermedios, cuando algo se rompe, el mensaje de error se convierte en el siguiente prompt, y el código crece de manera orgánica sin reorganización sistemática.
¿Cuándo es apropiado el Vibe Coding?
El artículo proporciona varios criterios técnicos para determinar cuándo el vibe coding podría ser apropiado. Es adecuado para proyectos de bajo riesgo como herramientas personales, prototipos y experimentos; situaciones con preocupaciones limitadas de seguridad donde los proyectos no manejan datos sensibles ni autenticación; escenarios sin exposición financiera donde el código no interactúa con APIs de pago sin límites de facturación; contextos con interacciones limitadas en la red, preferentemente en entornos sandbox que impiden solicitudes de red; y para uso personal donde los proyectos no están destinados a una distribución más amplia.

Desafíos técnicos y direcciones futuras
Aún existen varios obstáculos técnicos para un vibe coding seguro y efectivo. Los sandboxes actuales, como Claude Artifacts, limitan la funcionalidad a cambio de seguridad. Los errores en el código generado por la IA pueden propagarse a través de sistemas complejos. No todos los marcos y bibliotecas funcionan bien con código generado por IA. Las soluciones no optimizadas generadas por IA pueden introducir ineficiencias. Las prácticas tradicionales de control de versiones se desmoronan cuando el código no se entiende.
El artículo sugiere que podrían surgir mejores herramientas para abordar estos problemas, creando potencialmente «barreras de protección» más seguras, al tiempo que se preservan los beneficios de productividad.
El valor educativo del Vibe Coding
Desde una perspectiva técnica, el vibe coding ofrece beneficios educativos significativos. Reduce la barrera inicial de entrada a la programación, permite a los desarrolladores experimentados explorar rápidamente las capacidades y limitaciones de los LLMs, facilita la experimentación con bibliotecas o marcos desconocidos y proporciona retroalimentación inmediata sobre las instrucciones de programación en lenguaje natural.
La resistencia de los desarrolladores: Una creciente reacción
A pesar del entusiasmo que rodea al vibe coding, una parte significativa de la comunidad de desarrolladores ha expresado profundas reservas sobre este enfoque. Sus preocupaciones provienen de principios fundamentales de la ingeniería de software que parecen estar en desacuerdo con la filosofía central del vibe coding.
Los desarrolladores profesionales suelen ver la comprensión del código como algo no negociable. La capacidad de entender cada aspecto de una base de código no es solo un tema de orgullo profesional, sino un requisito previo para mantener, depurar y hacer evolucionar el software a lo largo del tiempo. El rechazo explícito de este principio por parte del vibe coding parece peligroso y temerario para muchos. Como dijo un destacado desarrollador en una publicación reciente de blog: “Abrazar un código que no entiendes es como conducir un coche con los ojos cerrados: funciona hasta que catastróficamente no lo hace.”
Los expertos en seguridad han sido particularmente vocales sobre los riesgos. Cuando los desarrolladores aceptan código sin una revisión exhaustiva, las vulnerabilidades pueden pasar desapercibidas. Estas pueden variar desde ineficiencias simples hasta fallos de seguridad graves que expongan datos de usuarios o creen puntos de entrada para actores maliciosos. El rápido ritmo del vibe coding agrava este riesgo, ya que el código se genera, acepta y construye tan rápidamente que la superficie para posibles vulnerabilidades se expande exponencialmente.
Desventajas y limitaciones
Más allá de la resistencia ideológica, el vibe coding enfrenta limitaciones prácticas que restringen su utilidad. El enfoque funciona bien para aplicaciones simples con requisitos claros, pero tiene dificultades con sistemas complejos donde los casos límite, la optimización del rendimiento y la integración con bases de código existentes se vuelven preocupaciones críticas.
La depuración de errores se vuelve particularmente desafiante cuando el desarrollador no tiene un modelo mental claro de cómo funciona el código. Si bien los errores simples pueden resolverse enviando los mensajes de error de vuelta al LLM, los problemas más complejos—particularmente aquellos que involucran fallos lógicos sutiles o cuellos de botella en el rendimiento—frecuentemente requieren un análisis más profundo del que permite el enfoque del vibe coding.
La colaboración presenta otro obstáculo. El desarrollo de software es cada vez más un esfuerzo en equipo, y el código debe ser legible para otros desarrolladores que puedan necesitar mantenerlo o ampliarlo. El código generado a través del vibe coding a menudo carece de la documentación, el estilo consistente y la claridad organizacional que facilita el trabajo colaborativo.
Quizás lo más significativo es que el vibe coding crea una relación de dependencia que algunos desarrolladores encuentran problemática. A medida que los practicantes dependen más de los LLMs para generar código que no entienden completamente, su capacidad para trabajar de manera independiente puede atrofiarse. Esta dependencia se vuelve problemática cuando los LLMs tienen dificultades con problemas nuevos o cuando las interrupciones de la red o los cambios en las API interrumpen el acceso a estas herramientas.
Conclusión
El vibe coding representa un enfoque fascinante para el desarrollo de software que sacrifica deliberadamente la comprensión completa a cambio de velocidad y accesibilidad. Si bien no es apropiado para sistemas críticos o de producción, abre la programación a los recién llegados y proporciona a los desarrolladores experimentados capacidades de prototipado rápido.
El término no debería diluirse para abarcar toda la programación asistida por IA, ni debería desestimarse como universalmente irresponsable. En cambio, representa un nicho específico dentro del ecosistema de programación, uno que probablemente crecerá a medida que las capacidades de los LLMs continúan avanzando y surgen nuevas herramientas para garantizar la seguridad y la fiabilidad en este paradigma novedoso.
La resistencia de los desarrolladores tradicionales no es simplemente resistencia al cambio; refleja preocupaciones legítimas sobre calidad, seguridad y sostenibilidad. A medida que el vibe coding evoluciona, encontrar el equilibrio entre la innovación y las prácticas de ingeniería responsables será crucial. El camino más productivo hacia adelante puede implicar el establecimiento de límites más claros sobre cuándo es apropiado el vibe coding, mientras se desarrollan mejores herramientas para mitigar sus riesgos inherentes.