"Vibe Coding" y el problema del 70%
¿Qué es el "Vibe Coding? El verdadero valor de los ingenieros de software en la era de la Inteligencia Artificial.
La reciente aparición de la IA generativa y herramientas como Cursor está incitando a muchísimas personas a lanzarse a programar. Aunque más que a programar, podríamos decir que a lanzar prompts e ir iterando hasta tratar de conseguir algo medianamente funcional.
Andrej Karpathy, uno de los co-fundadores originales de OpenAI, le puso nombre a esta tendencia en un post en X: Vibe Coding.
Hay un nuevo tipo de programación, al que yo llamo “vibe coding”, en la que te entregas por completo a las vibraciones, abrazas los exponenciales y te olvidas de que el código existe. Es posible porque los LLM (por ejemplo, Cursor Composer con Sonnet) se están volviendo demasiado buenos. Además sólo hablo con Composer con SuperWhisper así que apenas toco el teclado. Pido las cosas más tontas como “disminuye el relleno de la barra lateral a la mitad” porque me da pereza encontrarlo. Siempre “Acepto todo”, ya no leo los diffs. Cuando recibo mensajes de error, los copio y pego sin comentarios, y normalmente se soluciona. El código crece más allá de mi comprensión habitual, tendría que leerlo realmente durante un rato. A veces los LLM no pueden arreglar un error, así que simplemente lo evito o pido cambios aleatorios hasta que desaparece. No está tan mal para proyectos de fin de semana de usar y tirar, pero sigue siendo bastante divertido. Estoy construyendo un proyecto o aplicación web, pero no es realmente programación - sólo veo cosas, digo cosas, ejecuto cosas, y copio y pego cosas, y casi siempre funciona. — Andrej Karpathy en X.
El ejemplo más exitoso de Vibe Coding hasta el momento ha sido del Pieter Levels, @levelsio en X, quién apoyándose en Cursor programó un videojuego de aviación interactivo, fly.pieter.com, que en 17 días supuestamente ha generado 87.000$ de ingresos.
No corráis a imitarle. Pieter es probablemente el indie hacker más famoso de Internet sumando más de 600.000 seguidores en X. El videojuego de hecho es bastante pobre, lo que no es sino otro ejemplo más de que la distribución es más importante que el producto.
El problema del 70%
Abby Osmani, Engineering Leader en Google, se pregunta The 70% problem: Hard truths about AI-assisted coding, por qué pese a que la IA ya lleva un tiempo entre nosotros, y los ingenieros que la usan aseguran sentirse más productivos, el software que utilizamos a diario no parece estar mejorando.
Para Osmani, el problema es que, si bien la IA está acelerando masivamente la aparición de MVPs y prototipos, la mayor parte de juniors y gente sin experiencia que está programando por pura vibra, termina dándose contrael muro del 70%.
En su artículo, cita este tweet de Peter Yang, el cual describe perfectamente la sensación:
Ese 30% es el que todavía no te puede aportar la IA pero sí un buen ingeniero de software. Ese 30% es el que hace que un producto sea diferencial.
Tiene sentido si lo pensáis. ¿Qué valor puede tener algo que cualquiera pueda programar interactuando con un LLM, y que, por lo tanto, te pueden copiar sin pestañear? La realidad, bastante poco.
El valor del tipo de programación que un LLM te pueda proveer tenderá a cero. El valor de un ingeniero, capaz de aportar ese último 30% que te diferencie, será incalculable.
He visto muchas veces a obreros en una acera cuando hay que hacer una reparación: uno al mando de la retro-excavadora abriendo la zanja y otro con la pala en mano, al modo tradicional donde el otro no llega. Tal vez sea una situación análoga. ¿Qué valor puede tener algo que cualquiera pueda programar con un LLM ? Yo creo que sigue teniendo valor, analogamente a saber manejar una retro-excavadora -y es de hecho una profesión. La cuestión es para mi: 1) que efectivamente, ya no hay tanta demanda para abrir zanjas (por que se es más productivo) 2) que se necesita gente que sepa usar la pala y la retro-excavadora y 3) el hype de la AI que parece que algunos quieren vender: conseguiran los modelos actuales (llámales "agentes") llenar parte de ese 30%. Gracias por el post, una motivante lectura.
Considero que en el mundo de la tecnología nunca se tiene un 100% de una sola solución. Casi siempre son un par o más que vienen a resolver una necesidad. Ejemplos pueden ser, uso de la nube y on premise en un entorno híbrido, Linux y Windows, etc. En este caso se tiene un complemento entre la IA y el conocimiento del desarrollador.