Codificación Vibe: qué es y por qué deberías dejarla pasar

Todos sabemos que los programadores utilizan herramientas de inteligencia artificial para complementar su trabajo, pero hay una nueva tendencia que lleva las cosas al siguiente nivel. El término "codificación de vibración" fue acuñado por el cofundador de OpenAI, Andrej Karpathy, el mes pasado, pero lo que comenzó como una publicación X aleatoria se convirtió rápidamente en una comunidad completamente nueva.

Andrej Karpathy vibra codificando la publicación X.
Andrej Karpathy / X

Lo que Karpathy describe en su publicación es crear software sin escribir ningún código; todo lo que hace es enviar indicaciones que describen lo que quiere a su herramienta de inteligencia artificial y aceptar todos los resultados que genera. Incluso utiliza una herramienta de dictado para evitar utilizar el teclado. Suena loco, ¿verdad? Eso es porque lo es.

¿Qué es exactamente la codificación por vibración?

La mayoría de las herramientas de codificación de IA en este momento hacen tres cosas:

  • Genere sugerencias de autocompletar cuando el usuario escriba una línea de código
  • Explique, resuma, depure o asesore sobre los fragmentos de código que proporcione
  • Genere fragmentos de código basados ​​en sus indicaciones en lenguaje natural

Están diseñados para ayudar a las personas que saben codificar, y algunos también se centran en el estudio y la educación. Incluso Cursor, una de las principales herramientas que la gente está utilizando para crear código en este momento, está realmente diseñado para desarrolladores. Su objetivo es acelerar procesos simples para las personas que habrían estado codificando independientemente de que la herramienta existiera o no.

Captura de pantalla del sitio web de Cursor.
Cursor

Tome esta explicación de función aleatoria del sitio web de Cursor, por ejemplo: "El cursor le permite escribir código usando instrucciones. Actualice clases o funciones completas con un simple mensaje". Claro, el propósito de la función es evitar que tenga que escribir código manualmente, pero aún necesita saber qué son cosas como clases y funciones para hacer un buen uso de ella.

La codificación Vibe (o en lo que se está convirtiendo rápidamente la codificación Vibe) es una tendencia en la que las personas toman estas herramientas e intentan crear algo con tan solo cero conocimientos de desarrollo de software, simplemente describiendo en lenguaje natural los resultados que desean ver como usuario final.

¿Por qué la codificación Vibe es problemática para sus usuarios?

Cuando una persona sin ningún conocimiento técnico abre el Cursor y comienza a codificar por vibración, los resultados serán bastante diferentes de cuando alguien como Andrej Karpathy codifica por vibración. Mientras que Karpathy podría pedirle a Cursor que "genere algún código que haga hash y agregue contraseñas para la autenticación del usuario", un codificador de vibraciones no técnico podría decir "Hola Cursor, crea una base de datos segura para almacenar mis contraseñas".

Claro, usaron la palabra "seguro", pero ese es exactamente el tipo de detalle que un LLM podría ignorar al azar. Alternativamente, su idea de “seguro” podría no estar a la altura de los estándares del software comercial, o podría agregar medidas de seguridad en algunos lugares y no en otros. También hay otro problema con esta frase: la parte "almacenar mis contraseñas". Es bastante normal pensar que las contraseñas están "almacenadas" en algún lugar, pero si sabes qué son el salting y el hash de contraseñas, sabrás que las contraseñas de los usuarios técnicamente no se almacenan en ningún lugar.

En cambio, el valor salt y hash del salt y la contraseña concatenados se almacenan y, a pesar de todos los términos locos en esa oración, no es un concepto demasiado complejo. Sin embargo, es algo que nunca sabrías a menos que salgas y aprendas sobre ello a propósito. Y si no lo sabes, no puedes pedirlo.

Entonces, en lugar de eso, solicitó una base de datos segura, pero ¿qué versión del genio de LLM obtendrá? ¿El que toma su mensaje literalmente y almacena las contraseñas tal como están en una pequeña base de datos aleatoria? ¿O el que considera lo que realmente desea lograr y elabora un proceso de autenticación adecuado para usted?

Creo que la respuesta más precisa es que a veces obtendrás el genio mezquino, a veces obtendrás el amable y muchas veces obtendrás algo intermedio, sin ninguna rima o razón real. Podría hacer el 100% del trabajo, podría hacer el 90%, podría hacer el 5%. Con un mensaje tan vago, cualquier cosa podría suceder, y el problema es que un codificador de vibraciones sin conocimientos técnicos no tiene forma de comprender el resultado ni de decidir qué tan bueno es.

Ni siquiera puedes escribir pruebas adecuadas para descubrir qué está pasando si no sabes qué medidas de seguridad necesitas, con qué terminaste, qué deberían lograr o cómo serían el éxito y el fracaso.

Después de todo, tener implementadas medidas de seguridad malas, rotas o nulas en su software no hará que se rompa. Aún podría parecer que está haciendo todo correctamente por parte del usuario, pero a puerta cerrada, la información confidencial de sus usuarios (datos personales, información de pago, historial de uso) estará completamente desprotegida y lista para que los malos la roben. Y eso es malo tanto para usted como para sus clientes: las violaciones de seguridad no causan más que estrés, escándalo y pérdidas financieras a los propietarios de productos.

Cuando Karpathy describió sus experimentos de codificación de vibraciones, dijo que el código que él y Cursor producen "en su mayoría funciona", y no estoy aquí para afirmar que "en su mayoría funciona" sea inaceptable. Siempre hay soluciones rápidas, soluciones pirateadas, errores y todo tipo de problemas ocultos en cada código base de cada producto. Con el tamaño y la complejidad del software actual, es simplemente inevitable.

Pero si desea hacer público su proyecto y cobrarle dinero a la gente por usarlo, tiene la responsabilidad de hacerlo lo más seguro posible. Dejar información confidencial sin protección no está bien, y asumir que está protegida sin confirmarla adecuadamente tampoco está bien.

Si necesita una advertencia de la vida real, @leojr94 en X tiene todo lo que necesita. Aquí está su historia condensada en tres publicaciones X:

leojr94 en X primera publicación.
leojr94 en X / Tendencias digitales
leojr94 en X segunda publicación.
leojr94 en X / Tendencias digitales
leojr94 en X tercer post.
leojr94 en X / Tendencias digitales

¿Por qué la codificación Vibe es problemática para ti?

El software es caro. Incluso si reduce todos los costos de desarrollo mediante la codificación vibe, aún tendrá que pagar para almacenar sus datos, enviarlos entre usted y sus usuarios e interactuar con otros servicios a través de API.

Los servicios que utiliza para esto, como AWS, generalmente son de pago por uso, lo que significa que solo paga exactamente por lo que necesita. Eso es genial, ¿verdad? Seguro. Pero cuando no tienes el control del software que estás desarrollando, tampoco tienes el control del uso de datos. Es probable que su código, generado en fragmentos aleatorios y empalmados, sea extremadamente ineficiente. Sólo unas pocas líneas mal diseñadas podrían producir 3, 5 o incluso 10 veces más datos de los que realmente necesita, y enviar esos datos innecesarios entre usted y sus usuarios le costará mucho dinero extra. La forma más explosiva en que esto puede salir mal es cuando las cosas van bien.

Imagine que tiene algunos usuarios, que le llegan algunas facturas, que el crecimiento es lento pero constante y que puede afrontarlo. Pero un día te despiertas y el contenido de tus redes sociales se ha vuelto viral, lo que lleva a miles de personas a tu producto de software. Esto sería genial, excepto por el hecho de que su factura de AWS ahora es enorme y nota que los costos de tráfico de su red por usuario son en realidad más altos que el costo de suscripción que le pagan.

¿Cuál es la solución?

En este punto, algunas personas empezarían a sugerir más productos. Plataformas diseñadas para codificadores de vibración y "no expertos en tecnología" que brindan a los usuarios soporte adicional para seguridad, servidores y otras cosas de backend. Algunas personas también podrían decir que con algunos ajustes, la codificación vibe podría ser justo lo que el desarrollo de software necesita para democratizarse y dejar de ser excluyente.

Tengo una opinión diferente: ya está democratizado y ya es inclusivo (aunque no creo que sea una palabra). Cualquiera en cualquier lugar puede aprender sobre informática, codificación, programación o desarrollo de software, siempre que tenga una computadora y una conexión a Internet, y eso es exactamente lo que hace la gente. Un gran número de programadores son autodidactas y probablemente siempre lo serán. Tienes todo lo que necesitas, lo que me lleva a la “dura verdad” de la situación: si quieres crear software, entonces mala suerte: necesitas aprender cómo hacerlo.

Si tiene una idea, o se esfuerza por aprender cómo construirla o se esfuerza por encontrar socios e inversores que puedan ayudar a darle vida. No existe una opción difícil y sin esfuerzo en la que mágicamente terminas con un producto que funciona en una cantidad de tiempo insignificante y no tienes socios con quienes debas compartir las ganancias. El mundo no funciona así y tampoco debería funcionar así.

Si quieres hablar otro idioma, necesitas aprenderlo. Si quieres tocar la guitarra, necesitas aprender a hacerlo. Y si quieres crear software, necesitas aprender a crear software. Si el camino del bricolaje le parece bien, entonces hay buenas noticias: cualquiera que tenga los medios para sentarse y vibrar con el código utilizando software gratuito o de pago también tiene los medios para sentarse y estudiar programación utilizando cursos gratuitos o de pago. Tal vez incluso podrías utilizar herramientas de inteligencia artificial para acelerar las cosas.

Y no bromeo cuando digo que cualquiera puede hacerlo: la programación es tan importante en cuanto a inclusión que incluso hay un "tipo de programación" disponible para casi todos. Claro, no todas las personas se convertirán en arquitectos de software en una de las principales empresas, pero algunas personas aprenderán lo suficiente para crear juegos en C++, otras aprenderán lo suficiente para crear aplicaciones con Python, e incluso si decide que la codificación no es realmente lo suyo, probablemente aún podrá crear sitios web con HTML. Si eres un fanático del estudio profesional o nunca has estudiado en tu vida, y si eres un genio de las matemáticas o eres terrible con los números, podrás hacer algo.

¿Cuánto tiempo durará la codificación de vibraciones?

Ahora, es imposible saber qué pretendía lograr Karpathy al ejecutar este pequeño experimento o publicarlo en línea. Para mí, la publicación X dice así: "Hombre, esto de la IA se está volviendo una locura. Puedo tomar toneladas de decisiones intencionalmente malas, pedir cosas intencionalmente tontas y de alguna manera termino con algo que todavía funciona".

Otras personas parecen haberlo interpretado más como "Vaya, puedes crear software incluso si no sabes codificar". No. Gran no. No puedes hacer eso. Podrías pensar que la barrera entre tú y la aplicación que deseas crear es que los programadores sin sentido se sientan y escriben todo el día, que no puedes crear nada porque no sabes escribir code .

Pero eso no es todo. Puedes empezar a entender todas esas cosas después de sólo un puñado de horas estudiándolas. Es sólo lenguaje, sólo el método de comunicación entre usted y la computadora, y su importancia palidece en comparación con la información real que desea comunicar. Si tu objetivo en la vida es tener una conversación profunda y completamente técnica con un físico experimental español en su idioma nativo, no lo lograrás simplemente aprendiendo español.

Diseñar software, comprender algoritmos, administrar datos, cumplir con los estándares de seguridad, crear escala, optimizar y depurar: estas son las habilidades que construyen el software. Por lo tanto, no importa si Cursor te permite evitar escribir código, aún así no podrás crear una aplicación adecuada si no sabes nada sobre aplicaciones.

Realmente no sé qué tan grande será la codificación por vibración o cuánto durará, pero definitivamente no creo que valga la pena que una persona sin conocimientos técnicos intente codificar por vibración un producto. Tampoco creo que valga la pena correr el riesgo para los consumidores de probar un producto codificado por vibración: no hay forma de saber si sus contraseñas e información de pago están seguras. Si ve un nuevo producto desarrollado de forma independiente que le interesa, considere averiguar quién lo fabricó y cómo se hizo antes de darles dinero.