Por Willow Roberts de DT en inglés
Todos sabemos que los programadores utilizan herramientas de IA para complementar su trabajo, pero hay una nueva tendencia en la ciudad que lleva las cosas al siguiente nivel. El término «codificación de vibraciones» fue acuñado por el cofundador de OpenAI, Andrej Karpathy, el mes pasado, pero lo que comenzó como una publicación X aleatoria se ha convertido rápidamente en una comunidad completamente nueva.
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 IA y aceptar todos los resultados que genera. Incluso usa una herramienta de dictado para evitar usar su teclado. Suena loco, ¿verdad? Eso es porque lo es.
¿Qué es exactamente la codificación de vibraciones?
La mayoría de las herramientas de codificación de IA en este momento hacen tres cosas:
- Generar sugerencias de autocompletar cuando el usuario está escribiendo una línea de código
- Explique, resuma, depure o aconseje sobre los fragmentos de código que proporcione
- Genere fragmentos de código en función de las indicaciones del 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á usando para vibrar el código en este momento, está realmente diseñado para desarrolladores. Está destinado a acelerar procesos simples para las personas que habrían estado codificando ya sea que la herramienta existiera o no.
Tomemos esta explicación de características aleatorias del sitio web de Cursor, por ejemplo: «Cursor le permite escribir código usando instrucciones. Actualice clases o funciones enteras con un simple mensaje». Claro, el propósito de la función es ahorrarte escribir código manualmente, pero aún necesitas saber qué son cosas como clases y funciones para hacer un buen uso de él.
La codificación vibra (o en lo que se está convirtiendo rápidamente la codificación vibratoria) es una tendencia en la que las personas toman estas herramientas e intentan hacer algo con tan solo cero conocimiento de desarrollo de software, simplemente describiendo en lenguaje natural los resultados que quieren ver como usuario final.
¿Por qué la codificación de vibraciones es problemática para sus usuarios?
Cuando una persona completamente no técnica abre Cursor y comienza a codificar vibraciones, los resultados serán bastante diferentes de cuando alguien como Andrej Karpathy codifica vibraciones. Mientras que Karpathy podría pedirle a Cursor que «genere algún código que hashee y saltee las contraseñas para la autenticación del usuario», un codificador de vibraciones no técnico podría decir «Oye 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 de 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 de «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 hashing de contraseñas, sabrás que las contraseñas de los usuarios técnicamente no se almacenan en ningún lugar.
En su lugar, se almacenan la sal y el valor hash de la sal y la contraseña concatenadas y, a pesar de todos los términos locos de esa frase, no es un concepto demasiado complejo. Sin embargo, es algo que nunca sabrías a menos que salieras a propósito y lo aprendieras. Y si no lo sabes, no puedes pedirlo.
Entonces, en su lugar, ha solicitado una base de datos segura, pero ¿qué versión del genio de LLM obtendrá? ¿El que toma su solicitud literalmente y almacena las contraseñas como si estuvieran en una pequeña base de datos aleatoria? ¿O el que considera lo que realmente quiere lograr y crea un proceso de autenticación adecuado para usted?
Creo que la respuesta más precisa es que a veces tendrás al genio malvado, a veces tendrás al amable, y muchas veces, obtendrás algo intermedio, sin ton ni son. 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 no técnico no tiene forma de entender el resultado o decidir qué tan bueno es.
Ni siquiera puedes escribir pruebas adecuadas para averiguar qué está sucediendo si no sabes qué medidas de seguridad necesitas, con qué terminaste, qué deberían lograr o cómo podrían ser el éxito y el fracaso.
Después de todo, tener medidas de seguridad malas, rotas o nulas implementadas en su software no hará que se rompa. Todavía podría parecer que está haciendo todo correctamente en el extremo 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 actores la roben. Y eso es malo tanto para ti como para tus clientes: las brechas de seguridad no causan más que estrés, escándalo y pérdidas financieras para 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» es inaceptable. Siempre hay soluciones rápidas, soluciones hackeadas, errores y todo tipo de problemas ocultos en cada base de código para cada producto. Con el tamaño y la complejidad del software en estos días, es simplemente inevitable.
Pero si quieres lanzar tu proyecto al público y cobrar dinero a la gente por usarlo, tienes 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 necesitas un cuento con moraleja de la vida real, @leojr94 on X tiene todo lo que necesitas. Esta es su historia condensada en tres X posts:
¿Por qué la codificación de vibraciones es problemática para ti?
El software es caro. Incluso si reduce todos los costos de desarrollo a través de la codificación de vibraciones, aún tiene 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, suelen ser 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 empalmado, sea extremadamente ineficiente. Solo unas pocas líneas mal diseñadas podrían producir 3, 5 veces o incluso 10 veces más datos de los que realmente necesita, y enviar esos datos innecesarios de un lado a otro 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.
Imagina que tienes unos pocos usuarios, tienes algunas facturas que llegan, el crecimiento es lento pero constante y puedes lidiar con ello. Pero un día te despiertas y tu contenido de 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 red por usuario son en realidad más altos que el costo de suscripción que le están pagando.
¿Cuál es la solución?
En este punto, algunas personas comenzarían a sugerir más productos. Plataformas diseñadas para programadores de vibraciones y «no técnicos» 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 vibra 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 esa sea una palabra). Cualquier persona, 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 hacer software, entonces mala suerte: tienes que aprender a hacerlo.
Si tienes una idea, o bien te esfuerzas por aprender a construirla o te esfuerzas por encontrar socios e inversores que puedan ayudarte a darle vida. No existe una opción ahorrativa y sin esfuerzo en la que mágicamente termines con un producto que funcione en una cantidad de tiempo insignificante y no tengas socios con los que debas compartir las ganancias. Así no es como funciona el mundo, y tampoco es como debería funcionar.
Si quieres hablar otro idioma, tienes que aprenderlo. Si quieres tocar la guitarra, tienes que aprender a hacerlo. Y si quieres hacer software, tienes que aprender a hacer software. Si el camino del bricolaje te suena bien, entonces hay buenas noticias: cualquiera que tenga los medios para sentarse y vibrar el código usando software gratuito o de pago también tiene los medios para sentarse y estudiar programación usando cursos gratuitos o de pago. Tal vez incluso podrías usar herramientas de IA para acelerar las cosas.
Y no bromeo cuando digo que cualquiera puede hacerlo: la programación es en realidad tan grande en la 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 empresa importante, 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 decides que la codificación no es realmente lo tuyo, probablemente aún podrás crear sitios web con HTML. Tanto si eres un aficionado al estudio profesional como si nunca has estudiado en tu vida, y tanto si eres un genio de las matemáticas como si eres terrible con los números, serás capaz de hacer algo.
¿Cuánto tiempo se mantendrá la codificación de vibraciones?
Ahora, es imposible saber qué pretendía lograr Karpathy al realizar este pequeño experimento o publicarlo en línea. Para mí, la publicación de X dice así: «Hombre, esto de la IA se está volviendo loco. 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 hacer software incluso si no sabes cómo codificar». No. Rotundo no. No puedes hacer eso. Podrías pensar que la barrera entre tú y la aplicación que quieres hacer es que los programadores crípticos y sin sentido se sientan y escriben todo el día, que no puedes hacer nada porque no sabes escribir .code
Pero eso no es todo. Puedes empezar a entender todo eso después de un puñado de horas de estudio. Es solo el lenguaje, solo el método de comunicación entre usted y la computadora, y palidece en importancia 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 lengua materna, no lo lograrás solo aprendiendo español.
El diseño de software, la comprensión de algoritmos, la gestión de datos, el cumplimiento de los estándares de seguridad, la creación a escala, la optimización y la depuración: estas son las habilidades que crean software. Por lo tanto, no importa si Cursor le permite evitar escribir código, aún no puede crear una aplicación adecuada si no sabe nada sobre aplicaciones.
Realmente no sé qué tan grande será la codificación de vibraciones o cuánto durará, pero definitivamente no creo que valga la pena que una persona sin conocimientos técnicos intente codificar un producto. Tampoco creo que valga la pena correr el riesgo para los consumidores al probar un producto con un código de vibración: no hay forma de saber si sus contraseñas e información de pago están seguras. Si ves un nuevo producto desarrollado de forma independiente que te interesa, considera averiguar quién lo hizo y cómo se hizo antes de darles dinero.