- Uncle Bob, famoso por "Clean Code", declara que ha llegado la era en la que la IA escribe código muchísimo más rápido que los desarrolladores y llama a cambiar el rol del desarrollador
- Como la IA puede completar en 5 minutos tareas que antes tomaban un día, la era en la que los desarrolladores escriben código directamente ha terminado
- Pero eso, a la vez, les da a los desarrolladores un poder enorme, permitiéndoles hacer cosas que antes ni soñaban
- La cobertura de pruebas era dolorosa, pero ahora los desarrolladores pueden indicarle a la IA que asegure la cobertura de pruebas y usar un mutation tester para verificar la validez real de esas pruebas
- Combinándolo con herramientas de análisis de complejidad ciclomática (cyclomatic complexity), es posible indicarle a la IA que lleve la calidad del código a un nivel mucho más alto que antes
Transcripción del video adjunto
Seamos claros. La IA escribe código varias veces más rápido que ustedes. Lo que a ustedes les toma un día, la IA lo termina en 5 minutos. Se acabó. La era en la que ustedes escribían código directamente ya terminó. Lo sé. Acéptenlo.
Pero aquí viene lo interesante. Eso, en realidad, les da un poder enorme. Porque ahora pueden hacer cosas que antes ni siquiera podían imaginar.
Piensen, por ejemplo, en la cobertura de pruebas. Sé lo doloroso que era. Había que escribir todas esas pruebas insoportables. Y aun así, tener pruebas no significaba que el código funcionara bien. Corrían la cobertura de código, sonreían un poco y decían: "Bueno, sí, pero esto no significa que el código funcione… solo significa que se ejecutó".
Ahora eso se puede arreglar. Porque ahora tienen potencia (horsepower). Pídanle a la IA que cubra el código y luego ejecuten un mutation tester. Sí, es una herramienta. Y también pueden pedirle a la IA que construya esa herramienta. La hace en 5 minutos. Después hacen que la IA ejecute esa herramienta. La herramienta modifica el código fuente y corre todas las pruebas. ¿Si las pruebas no fallan? Entonces escribe pruebas que sí fallen. Así obtienen cobertura de pruebas de verdad.
Lo juro, obtienen cobertura de pruebas de verdad.
Y ¿saben qué más pueden hacer? Pueden analizar la calidad del código. Pueden crear una herramienta para revisar la complejidad ciclomática. De hecho, ya existe una herramienta excelente. Tiene 20 años. Se llama CRAP. Buen nombre. No sé de qué es sigla. Tampoco quiero saberlo. Es la combinación de cobertura de pruebas y complejidad ciclomática. Pueden decirle a la IA que baje la puntuación de CRAP a 5 o menos, a 4 o menos. Entonces la IA divide las funciones grandes en partes pequeñas y hace que todo quede cubierto por pruebas.
Piénsenlo: el poder que tienen. Pueden llevar la calidad del código a un nivel nunca antes visto.
Lo sé. Soy ese viejo señor de Clean Code. Pero voy a ser sincero. Si ponen a la IA a trabajar de verdad, podrán hacer que el código sea muchísimo, muchísimo más limpio.
6 comentarios
Opiniones de Reddit
Suena como la voz de villano que Mark Hamill suele hacer
De verdad parece un desarrollador que ya pasó por todo
if (f == -1) { printf("open failed\n"); exit(1); }La IA lo escribirá por mí, y además va a poner un tipo de error aparte y mensajes con parámetros significativos para todas las posibles causas de fallo. La IA no es tan floja como yo, así que ahora puedo enfocarme en la lógica de manejo de archivos
Parece que ya entramos a una era donde la mayor parte del código es boilerplate. Lo importante es la capacidad de comunicar bien los requisitos y tener formas de seguir revisando la seguridad (OWASP) y el rendimiento del código generado
Son extremadamente no deterministas, y hasta los modelos más recientes muchas veces varían durante el día entre “ya con esto basta” y “casi no sirve”
El lenguaje natural fue, es y seguirá siendo ambiguo y poco preciso, así que probablemente este problema no se va a resolver. Por eso usamos fórmulas matemáticas, no “mmm, súmale X a Y y cuando entre en Z piénsalo bien”
Ahorita mismo sigo tratando de resolver con Claude cómo manejar permisos de forma efectiva, y la manera en que implementó un cambio nuevo de acción/permisos fue el ejemplo perfecto de código que “más o menos funciona, hasta que un día se rompe”
Claude escribe buen código, pero no siempre escribe código bueno
Lo que hay que entender de la IA es que no es mejor que una persona en la parte de “pensar”; solo es más rápida. Si le pides hacer algo, normalmente lo hará como lo haría la mayoría de la gente, y en código eso seguido no es muy bueno
Desde hace mucho podías contratar a varios desarrolladores, decirles qué querías, y recibir algo lleno de bugs, donde un cambio nuevo rompía otras tres partes. Claude hace exactamente lo mismo si lo dejas solo. Lo he visto, y la respuesta siempre es entrar, leer el código que escribió y pedirle que lo refactorice para que sea más robusto y se rompa menos
Mientras uses Claude para escribir código, vas a seguir necesitando la capacidad de juzgar si ese código está bien. Igual que si le dejas escribir tu CV o tus documentos contables, de todas formas tienes que revisar el resultado
Ya no vamos a escribir código como antes, pero la capacidad de leer lo generado y revisarlo a la luz de la experiencia sigue siendo necesaria
El problema es que todo el mundo cree que, como habla inglés, entonces puede hacer que Claude le construya un programa. Pero hablar inglés no significa que puedas hacer que Claude escriba una tesis doctoral refutando la radiación de Hawking. No tienes ninguna forma de juzgar si el resultado es correcto
Hay más programadores empleados ahora que cuando Microsoft introdujo el scaffolding. También hubo más programadores cuando lenguajes como Basic hicieron que la gente escribiera instrucciones legibles por humanos en lugar de ensamblador, y también más que en la época anterior, cuando se perforaban tarjetas con código
Las computadoras siempre se han programado con conjuntos de instrucciones cada vez menos restringidos y más fáciles de leer y escribir
Respeto a Bob Martin, pero creo que esta vez está equivocado. La gente va a seguir escribiendo instrucciones para computadoras. Solo que ya no serán conjuntos de instrucciones limitados y específicos, sino un lenguaje mucho menos restringido y mucho más legible para humanos
No se acabó nada. Apenas está empezando. La programación acaba de lanzar un nuevo lenguaje, y se llama English
Ya hoy estamos produciendo una cantidad récord de software, y eso se va a acelerar. Vamos a escribir más código que antes, y aunque todo se vuelva mucho más rápido, al final más gente terminará trabajando con software de una forma u otra. El producto se volvió demasiado barato, y esto se parece bastante a la paradoja de Jevons
Pensar “esta vez es diferente” es arrogante, e incluso a la gente inteligente le cuesta imaginar lo que significa un crecimiento exponencial multifacético. No solo los modelos de lenguaje grandes están mejorando
Así que sí, me parece correcto
Este sí es el pico de la burbuja, ¿no? Lo declaro aquí y ahora ☎️
La forma en que él lo plantea requiere métricas de calidad de software, pruebas profesionales y años de comprensión sobre calidad de código
Todavía no tenemos herramientas suficientes para eso. O al menos no están adoptadas de forma amplia. Ni siquiera estoy seguro de que la industria las vaya a adoptar
Las prácticas de CI/CD tampoco eran tan difíciles de implementar, pero muchas empresas nunca las adoptaron por completo y siguieron trabajando de forma ineficiente contratando más gente. A menos que la IA haga todo eso por defecto, va a pasar lo mismo. Las herramientas actuales como Claude Code, Cursor y Codes no bastan
Parece Matrix si este tipo fuera un Agent
Para dirigir bien a la IA necesitas profundidad técnica de primer nivel. Si nada más le dices a la IA que siga agregando código, eso no va a ser mantenible
Además, todavía no he oído de ni un solo producto de nivel de mercado operado solo por IA. Así que bájenle dos rayitas
Al rato también vamos a hacer vibe coding con cerebros humanos
Gracias por el buen artículo.
Viendo las opiniones de los desarrolladores que trabajan en el campo, de verdad parece que la era del coder ya terminó. No se ven muy distintos de los obreros que destruían máquinas durante la Revolución Industrial. Surgió un lenguaje nuevo bastante convincente, y si no se adaptan rápido, van a quedar rezagados.
Pero también hay demasiados casos en los que solo tiran código a lo bruto..
https://eslint.org/docs/latest/rules/complexity
Las opiniones en reddit se ven bastante negativas o llenas de sarcasmo.
En la práctica, en situaciones donde gracias a la IA por fin se están avanzando de verdad cosas que se habían ido postergando, como la cobertura de tests y los E2E Test, esa reacción más bien se ve cínica.