Llevo un par de días pensando en ello. En si estoy “a favor”, en si creo que la IA “es buena” en la industria del software. Tras varios días rumiando, leyendo, viendo vídeos y reflexionando creo que tengo más clara mi postura. La inteligencia artificial en programación es inevitable. (View Highlight)
Dario Amodei, CEO de Anthropic, asegura que en los próximos 3-6 meses, la IA escribirá el 90% del código. Y que en 12 meses, prácticamente todo. (View Highlight)
Zuck es más comedido, sólo apunta a que en 2025, los sistemas de IA de Meta y otras empresas serán capaces de escribir código como ingenieros de nivel medio. (View Highlight)
Según datos de GitHub, el uso de asistente de programación ha llegado a dar hasta un 55% de aumento en productividad en ciertas tareas. Y, lo que me resulta más revelador, la gran mayoría de desarrolladores siente que las herramientas de IAmejoran la calidad del software que producen. En EE. UU., por ejemplo, alrededor de 90% de los encuestados perciben que la calidad de su código aumenta al emplear asistentes de IA, e igualmente más de 80% en la India reportan mejoras, frente a prácticamente nadie que opine que la calidad disminuye. (View Highlight)
Como hemos visto, un uso claro de la IA es el de asistente en programación, con cada vez más código escrito por ella. Eres un desarrollador y cuando te atascas, no das con la solución o simplemente te toca escribir algo tedioso para un asunto no muy complejo, cambiar la búsqueda en Stack Overflow / Google por preguntar a un modelo de IA. (View Highlight)
Hay miles de ejemplos en redes y plataformas. El No-code ya venía permitiendo crear webs más sofisticadas y pequeñas automatizaciones (Webflow, Zapier, make, incluso podríamos meter ahí a Wordpress), pero la inteligencia está permitiendo un fenómeno nuevo. Si me permiten la provocación, el “código hecho por IA” es una especie de “el nuevo No Code”. (View Highlight)
Empieza a haber consecuencias. Una es que gente con ideas fantásticas pero poco conocimiento técnico puede empezar a experimentar y ver resultados. También que, al igual que con el contenido online en el que ya cualquiera puede publicar en texto o vídeo, empezamos a tener producción masiva y de calidad muy desigual de aplicaciones y servicios online. Los programadores de siempre no están contentos porque los proyectos buenos tendrán que pelear todavía más por la visibilidad. (View Highlight)
Y luego tenemos que en Y Combinator afirman que una cuarta parte de sus empresas de nueva creación del cohorte actual tienen bases de código generadas en un 90% por IA. También nos regalan los mensajes más afilados del hype para con el fenómeno: ingenieros que con IA son “10 veces más productivos”, fundadores que ahora se dedican a “pensar y que la IA escriba mis pensamientos” y así… (View Highlight)
Creo que el asunto de que la IA hace todo el código o, más aún, que un agente como Devin puede ser un “compañero más del equipo de desarrollo” es enormemente exagerado. Como la idea de que su adopción desemboca en “ingenieros 10x” o que aumentando tantísimo la velocidad no se está haciendo sacrificando la calidad y mantenibilidad del proyecto a medio plazo. (View Highlight)
Lo difícil es restar esta costra de hype del mucho valor que ya está aportando. (View Highlight)
La foto actual es que un ingeniero en solitario puede hacer más rápido lo que hacía antes y, además, abordar asuntos más ambiciosos. Sospecho que un gran efecto de la IA es la explosión de ‘side projects’ creados por profesionales. También que equipos pequeños pueden acometer proyectos antes inaccesibles. (View Highlight)
A partir de un mensaje de Andrej Karpathy se ha puesto en boga el “vibe coding”. Usar LLMs y Cursor para pedir el código a la IA de manera despreocupada, trabajar con la semántica (lo que quiero), y llegar a ni revisar el código esperando hasta que funcione. (View Highlight)
Ahora Reddit, youtube y Twitter se han llenado de vibe coding, sobre el que señalaría dos cosas. Una es que Karpathy es uno de los mayores expertos en inteligencia artifical del mundo, no un novato sin experiencia. Y dos, como él dice “no está tan mal para proyectos de fin de semana de usar y tirar, pero sigue siendo bastante divertido”. (View Highlight)
Pero la inteligencia artificial no ha llegado, siquiera en programación, al punto de sustituir el conocimiento experto y profundo de un desarrollador con experiencia. No elimina decisiones de arquitectura críticas ni produce sistemas complejos que sean mantenibles. (View Highlight)
Y otra razón por la que es muy difícil discurrir sobre este tema: quedarnos con la foto fija del ‘estado del arte’. Es ese momento en que un programador experto intenta hacer algo de complejidad media con una IA que falla y resuelve “nunca lo conseguirá”. Es cuando, como hay muchos mensajes de hype, se acaba despreciando todo lo que viene desde la IA. (View Highlight)
Pasamos de programar directamente la máquina en ensamblador a compilador y lenguajes de bajo nivel, lenguajes de alto nivel, código interpretado en lugar de compilado, ofuscamos el manejo de memoria con punteros, delegamos la concurrencia y su complejidad. (View Highlight)
Esta nueva pirámide nos lleva a varias reflexiones. Una es que despreciar que en “Code sólo con IA” (aquí me refiero a delegar todo el desarrollo, plausible para un no programador) porque sólo se puede aspirar a prototipos apenas funcionales y proyectos poco ambiciosos que luego además serán difíciles de mantener nos lleva a dos errores: el de no ver el impacto para el resto de la pirámide y el de quedarnos con la foto fija actual. (View Highlight)
El gran tema está en cómo se desplaza el valor, la demanda en la pirámide. Históricamente que aparecieran los lenguajes de alto nivel no significó que dejaran de importar los desarrollos más pegados a la máquina: alguien tiene que hacer esos compiladores y sistemas operativos. Pero los cambios en la industria del software y la productividad sí que mueven la aguja. (View Highlight)
El cambio de bajo nivel a alto nivel sin manejo de memoria directo permitió un aumento de la productividad aunque se sacrifique eficiencia del código. En muchos casos tuvo sentido económico y por eso hay más programadores de Java que de Fortran o incluso que de C++. (View Highlight)
¿Es la capa de ‘Code sólo con IA’ realmente valiosa? Aparentemente lo es mucho: gente poco formada puede escribir software. Se parecería al salto de la revolución industrial: obreros no cualificados con máquinas nos dan lo que antes hacían artesanos con décadas de experiencia. (View Highlight)
En la realidad del momento presente no lo es tanto. Sin un conocimiento profundo se puede aspirar sólo a proyectos muy poco ambiciosos y, además, difíciles de mantener. Decía Manu Arenas hace poco lo erróneo que resulta proclamarm como hacen algunos, que puedes crear una aplicación “sin tener ni p*** idea de código”, pero no una aplicación cualquiera, sino la aplicación de “tus sueños”… gracias a usar Lovable. (View Highlight)
Herramientas como esa son un juguete estupendo para crear prototipos más o menos funcionales. Conozco a programadores avanzados que así las adoptan. También para no programadores a la hora de conseguir pequeños casos de uso en poco tiempo. Pero ya. Pensar que la inteligencia artificial ha llegado al nivel de poder sustituir años de experiencia y formación en una disciplina compleja y dura como es el desarrollo software es comprar un hype sin reflejo en la realidad. (View Highlight)
Y recordaría algo: este “Code con sólo código de IA” compite con lo que se puede hacer en el resto de capas por programadores con experiencia… impulsadas con una ganancia de productividad gracias a la propia IA. (View Highlight)
Pero, de nuevo, toca insistir en no caer en la falacia de la foto fija o de la primera impresión. Probamos herramientas o asistentes, concluimos (con razón) que no dan para el hype ni para nada parecido a gente sin saber programar capaz de hacer una aplicación con complejidad, segura y mantenible. Pero eso es un error, el sesgo de hacernos fuertes en nuestra primera idea, y por eso siempre deberíamos matizar. Esto es así en ausencia de innovación. (View Highlight)
Si atendemos a la situación actual, es improbable que haya un desplazamiento masivo del valor a la nueva capa de abstracción. Nos queda la pregunta de si la inteligencia artificial va a mejorar mucho en despliegue, diseño de arquitecturas complejas de aplicaciones, integración con otros sistemas, pruebas del software, ventana de contexto para tener ver todo el proyecto… Es, por tanto, un debate sin cerrar, afectado por una segunda derivada… (View Highlight)
Si la IA va a ser la tecnología clave de las próximas décadas, ¿cómo afectará eso a la demanda y el valor en la pirámide de abstracciones en el desarrollo software? Es, sin duda, la pregunta más difícil y apenas he llegado a plantearme algunos escenarios plausibles. (View Highlight)
Cambia todo para que no cambie nada. La IA es una especie de electricidad que mejora todo pero seguimos accediendo a webs, instalando apps, consumiendo SAAS en cliente-servidor. Tenemos gente jugando con el no code y el code con IA, pero no van más allá de sumar ruido. (View Highlight)
Ídem al anterior pero super productivos. Ingenieros en solitario montan proyectos potentes, equipos pequeños pueden competir con las grandes. Es donde empezamos a ver signos claros. Es el punto de Levie de Box, que analiza Samuel Gil. (View Highlight)
La IA empieza a ser una fuerza que agrega lo que antes se desagregó. Si vivimos un ‘unbundling’ en forma de una app para caso de uso y una miríada de SAAS especializados, con inteligencia artificial tenemos una mayor o menor recentralización. Es un escenario de futuro que para muchos empieza a ser presente: he visto servicio que piden una suscripción para resolver un problema que en 10 minutos con algo de maña y ChatGPT he podido hacer por mi mismo. (View Highlight)
Super inteligencia. La IA llega a un nivel tal que hasta conceptos básicos de la industria del software quedan trastocados. Ya no se trata que alguien haya desarrollado algo para arreglar mi problema, sino que cuando lo tengo le pido a la IA una solución y ella se encarga (y si tiene que desarrollar software, lo hace). Resulta obvio recordar recordar a los lectores que, a falta de evidencia en contrario, prefiero mantenerme escéptico de que vayamos a conseguir AGI a partir de LLMs. (View Highlight)
En cualquier caso, estas reflexiones nos dejan abiertas cuestiones para la segunda (y próxima) parte de este artículo. Qué puede pasar con el empleo y los salarios y qué podemos hacer ahora como profesionales y estudiantes. (View Highlight)