- Programar es un acto creativo de refinar con precisión especificaciones ambiguas, y la IA acelera este proceso al convertir especificaciones en inglés en código
- El “vibe coding” permite una forma más intuitiva de desarrollar, pero no puede evitar los problemas de complejidad y bugs causados por las fugas de abstracción
- Los humanos usan abstracción y compresión para manejar la complejidad, y eso funciona como el valor esencial de la programación
- En la era de la AGI, se espera que la IA apoye mejores abstracciones y haga posible la creación de código sofisticado y artístico
- A diferencia de la idea de que “el código ha muerto”, la IA se presenta no como el fin de la programación, sino como una herramienta que abre un nuevo comienzo
La muerte del código es una afirmación exagerada
- Al señalar la ambigüedad de las especificaciones en inglés y los límites de la precisión, se plantea que programar es un acto de aumentar la precisión de manera iterativa, como escribir
- Mediante una cita de Bertrand Russell, se subraya que “todo es vago hasta que intentamos hacerlo preciso”
- La IA convierte rápidamente especificaciones escritas en inglés en código ejecutable, permitiendo que el usuario concrete gradualmente el resultado que desea
- El “vibe coding” es una forma de desarrollo intuitivo en la que se reacciona al resultado generado por la IA, pero puede dar una ilusión de abstracción precisa
- Cuando una abstracción tiene fugas, aparecen bugs inesperados, y esto se vuelve más grave a mayor escala
- Se presenta el caso de Dan Shipper, cuyo editor de texto colaborativo creado con “vibe coding” ganó popularidad y luego se cayó por problemas de complejidad
- La “colaboración en vivo” parece intuitivamente simple, pero en realidad es un problema muy difícil, lo que muestra la naturaleza de la complejidad
Abstracción y control de la complejidad
- Como los humanos solo pueden percibir alrededor de 7±2 elementos a la vez, la única forma de manejar la complejidad es la “compresión”, es decir, la abstracción
- Mediante una cita de Edsger Dijkstra, se enfatiza que “el propósito de la abstracción no es la vaguedad, sino la precisión en un nuevo nivel de significado”
- Se presenta como ejemplo el caso de Sophie Alpert, quien simplificó un complejo diagrama de flujo de notificaciones de Slack
- El núcleo de la programación es la creación de mejores abstracciones para manejar la complejidad, y su belleza puede encontrarse en áreas como la programación reactiva funcional
- Incluso problemas inherentemente complejos, como un editor de texto colaborativo, pueden conquistarse gradualmente mediante herramientas de abstracción como ReactJS o TailwindCSS
La era de la AGI y el papel del código
- A medida que la IA avanza cada vez más rápido y a menor costo, eventualmente llegará a una inteligencia indistinguible de la humana (AGI)
- En la era de la AGI, se prevé que cualquiera podrá usar una inteligencia tan poderosa como “100 genios al nivel de Karpathy” a bajo costo
- Sin embargo, esto no será para producir “más código mediocre”, sino para usarse como una herramienta para mejores abstracciones y una mejor comprensión de la complejidad
- El código no es solo un medio para crear software, sino un producto artístico importante en sí mismo, y el código bien escrito se compara con la poesía
- Así como no existe el “vibe writing”, la programación tampoco puede sustituirse por un acto meramente intuitivo
- Cuando llegue la AGI, las máquinas podrán escribir código non-slop, y eso será un avance glorioso para la humanidad
IA y mejora de la calidad del código
- Actualmente, la IA todavía genera código imperfecto, pero los desarrolladores la usan teniendo eso en cuenta
- Como sostiene Simon Willison, la IA debe usarse como una herramienta para crear mejor código
- Cuando aparezca la AGI, se la desplegará primero para resolver los problemas de abstracción más difíciles, mejorando sistemas complejos como las bibliotecas para editores colaborativos
- Se presenta el caso del desarrollo de un framework full-stack de React para Val Town (vtrr) usando Opus 4.6
- Resolvió de una sola vez problemas pendientes relacionados con React Router 7, y manejó la complejidad con elegancia en una demo de un solo archivo de 50 líneas
- Esto muestra que es posible una creación de código sofisticada mediante la colaboración entre IA y humanos
El futuro del código y el valor del formalismo
- Aunque gran parte de la sociedad cree que “el código ha muerto”, eso es un error comparable a declarar el fin de las historias por la invención de la imprenta
- La IA no significa el fin de la programación, sino un nuevo comienzo para programar
- Mediante citas de Edsger Dijkstra, Tony Hoare y Charles Babbage, se destaca que el pensamiento formal y el poder de compresión de los símbolos expanden el pensamiento humano
- Dijkstra menciona que el uso de lenguajes formales debe verse no como una carga, sino como un privilegio
- Hoare contrapone dos enfoques: “un diseño simple obviamente libre de defectos” y “un diseño complejo sin defectos obvios”
- Babbage señala que la compresión de los símbolos es una fuerza que impulsa el pensamiento
- En conclusión, el código no ha muerto; al contrario, está emergiendo como una herramienta creativa aún más poderosa en la era de la IA
1 comentarios
Opiniones en Hacker News
Chris Lattner revisó un compilador escrito con Claude AI y dijo que no tenía nada innovador
La IA tiende a recombinar conocimiento existente de forma promedio, así que no puede generar por sí sola pensamiento crítico ni nuevos paradigmas
Los humanos pueden pensar fuera del consenso existente, pero la IA tiene una fuerza que la empuja a volver a ese consenso
Al final, la IA es una conformista (conformist), y eso es al mismo tiempo su fortaleza y su debilidad
Artículo relacionado
En vez de pasar horas descifrando documentación para configuraciones complejas de autenticación como OAuth o SAML, un LLM me genera rápido código de integración funcional
También lo uso como una especie de rubber duck debugging, conversando con la IA para ordenar mis ideas
Ese tipo de conversación tiene un nivel de complejidad difícil de alcanzar para alguien sin experiencia real en desarrollo
La verdadera preocupación es si la IA reducirá la demanda y hará que la industria quede en sobreoferta
Si siguen apareciendo nuevos problemas de negocio, la IA ayudará como herramienta, pero si no, los empleos se reducirán haya o no haya IA
Las redes neuronales esencialmente hacen interpolación (interpolation), no extrapolación (extrapolation)
Es decir, dentro del área aprendida son sofisticadas, pero fuera de ella sus predicciones son impredecibles
El artículo de Wikipedia y el ejemplo de SolidGoldMagikarp lo muestran bien
El objetivo de Claude no era innovar, sino demostrar si “la IA puede hacer un compilador”
Si vemos casos como AlphaDev o AlphaEvolve, hay suficientes motivos para pensar que la IA también podría generar innovación real mediante aprendizaje exploratorio y combinación de conocimiento
En la mayoría de los casos queremos herramientas predecibles, no entidades inestables que aprendan por su cuenta
La IA tiene la capacidad de ordenar requisitos contradictorios y producir una implementación coherente
Por ejemplo, puede responder de forma lógica incluso a peticiones imposibles como “dibújame 7 líneas rojas con tinta azul”
Que Claude dijera en realidad “eso es imposible, así que dibujar 0 líneas es la respuesta honesta” es un ejemplo de pensamiento crítico
Respecto a la pregunta “¿puede la IA crear nueva tecnología?”, soy escéptico
Como la IA depende de datos existentes, cuando aparece un lenguaje o framework nuevo puede haber riesgo de que se ralentice la velocidad de evolución por falta de datos de entrenamiento
La programación con IA incluso podría reducir la “reinvención de la rueda” y ayudarnos a salir del síndrome NIH
Aunque casi no haya datos de entrenamiento, puede leer la documentación, escribir código y probar cosas nuevas
Hay que dejar abierta la posibilidad de que algún día la IA también pueda hacer síntesis técnica creativa
Al final, podría llegar una época en la que los desarrolladores tengan que pagar para estar incluidos en los datos de entrenamiento de IA
Por ejemplo, plataformas como skills.sh ofrecen un sistema de skills para enseñarle frameworks nuevos a la IA
Solo con documentación y código de ejemplo, la IA puede empezar a usar ese framework de inmediato
Tengo sentimientos encontrados respecto al código
En el trabajo, el código es una deuda, pero al mismo tiempo también es un placer como hobby
Siento que se acerca un mundo como el de la computadora de Star Trek, donde “pides algo hablando y lo resuelve sola”
Muchos recursos intelectuales de la sociedad se están usando en adtech o en la industria de la vigilancia
Si la IA reemplaza la programación, eso podría convertirse en una oportunidad para redistribuir talento
Estoy creando un CRDT capaz de mover, borrar y ordenar en una estructura de árbol sin tombstones
Claude Code escribe bien el código, pero seguía intentando agregar tombstones, así que tuve que convencerlo con una prueba lógica
Parece que la IA todavía no tiene del todo este nivel de comprensión estructural fina
Cada vez que aparece una tecnología nueva, los humanos siempre pasamos por un período de expectativas excesivas y experimentación
Aprender los límites de una tecnología a través de ese proceso es la forma humana de avanzar
La promesa de la programación agentiva suena demasiado buena, pero al final todos aprenderán la realidad a base de prueba y error
Más que decir que “el código ha muerto”, yo diría que los humanos estamos subiendo un nivel de abstracción
Ahora escribes una especificación en inglés y la IA genera el código
Pero cuando hace falta especificidad total, el código sigue siendo más útil
Como en la edición de fotos: si necesitas control preciso, es mejor hacerlo tú mismo, pero en la mayoría de los casos basta con encargárselo a la IA
Creo que con el tiempo la IA escribirá código estable y seguro mejor que los humanos
Como dijo Simon Willison, el valor real del vibe coding no está en hacerlo “más rápido”, sino en producir mejor código
Se pueden generar prototipos con varios modelos de diseño e iterarlos según criterios de legibilidad, confiabilidad y tolerancia a fallos
Ahora, en una revisión de código, si digo “cambiemos esta parte así”, la IA lo corrige de inmediato
Pero muchos colegas solo esperan un “mundo donde el código desaparezca”
Hace poco hubo una noticia de que Donald Knuth le pidió una demostración a una IA y esta encontró una demostración antes desconocida
Pero es más probable que no haya sido un descubrimiento nuevo, sino que encontró material olvidado
Ese aspecto es lo que hace de los LLM una herramienta de investigación poderosa, y al mismo tiempo hace que parezcan creativos
Si lees el Dragon Book, puedes hacer uno funcional en unos meses y en el proceso entenderás todos los principios
Creo que los lenguajes de programación son una forma de expresar de manera comprimida la intención humana
Pero a veces el lenguaje natural puede transmitir la intención de forma más precisa y densa
Una buena abstracción reduce esa brecha, y los DSL o los lenguajes de la familia ML/Lisp son ejemplos de ello
Por ejemplo, como en el tutorial de Electric Clojure, el código puede ser la mejor forma de contener la intención
Al final, como dijo Wittgenstein, “una imagen borrosa a veces puede ser exactamente lo que necesitamos”