Ruby y Rails cuando los agentes escriben el código: Matz y DHH con Jeremy Daer en Rails World 2026

Abrir en YouTube ↗
Resumen

La charla junto al fuego que cerró Rails World 2026 reunió a Yukihiro "Matz" Matsumoto, creador de Ruby, y a David Heinemeier Hansson (DHH), creador de Rails, en conversación con Jeremy Daer, de 37signals. La pregunta de fondo era qué significa ser "rubyista" cuando los agentes de IA escriben la mayor parte del código, y cómo dar forma al futuro de Ruby y Rails en ese contexto. Ninguno de los dos se presentó como profeta. Matz insistió en que no sabe hacia dónde va todo. DHH prefirió hablar de probabilidades en lugar de certezas, aunque con un optimismo muy marcado.

34 min de lectura
0:56

Una conferencia que parecía "AI World"

Jeremy abrió con una broma: a esta edición de Rails World se le podían quitar la R, la L y la S, porque todo giraba en torno a la IA. Recordó que la ponencia de DHH del día anterior había dejado muchas preguntas abiertas y que, en momentos de incertidumbre, la gente pide más que nunca predicciones y seguridad. Por eso propuso empezar por ahí: si no sabemos qué va a pasar, ¿qué se puede decir sobre finales de este año o del siguiente?

Matz contestó que todo cambia tan rápido que no sabe muy bien hacia dónde va. Puso un ejemplo personal: hace dos años no se habría imaginado dejar de usar Emacs como editor, aunque aclaró que sigue usándolo. Desde noviembre del año anterior, más o menos, todo su código lo escribe con Claude Code, y le parece que las cosas son completamente distintas, algo que le resulta complicado de asimilar.

DHH coincidió en que lo que toca ahora es razonar con probabilidades. Según su lectura, a finales de año prácticamente todo el mundo programará como Matz, a través de agentes, y no solo la mayoría. Entiende que eso produzca incertidumbre y lo comparó con una gran ola ante la que uno no sabe dónde colocarse para mantenerse en pie. A su juicio, eso crea una responsabilidad colectiva de ayudarse unos a otros, y el primer paso es aceptar que está ocurriendo y que nadie tiene poder para detenerlo.

Atravesar a toda velocidad las etapas del duelo

DHH describió el momento actual como recorrer a toda velocidad las cinco etapas del duelo. Cree que mucha gente ha dejado atrás la ira y está en alguna forma de negociación con el futuro, y considera que eso no funciona: la IA "te escuchará y te atenderá", pero no cambiará de trayectoria. Su recomendación fue superar cuanto antes la negociación, pasar con suerte rápido por la depresión y llegar a la aceptación. Contó que lo que encontró al otro lado, y lo que dice que ha encontrado mucha otra gente, es algo maravilloso y divertido por las mismas razones por las que siempre lo fue programar: tener ideas y ver cómo las máquinas las hacen realidad, solo que mucho más rápido.

También dejó espacio para la lentitud del proceso. Explicó que las etapas del duelo existen precisamente para que la gente entienda que el cambio no es instantáneo. En su caso tampoco lo fue: quizá las atravesó algo más rápido que la mayoría, pero tuvo que pasar por ellas. Le parece legítimo sentir nostalgia por algo que realmente gustaba antes de pasar a otra cosa que quizá guste más o quizá no. Recordó que cada cambio de paradigma en informática, como Internet o los móviles, dejó a personas que deseaban que no hubiera ocurrido y que prefirieron quedarse en la estación, y dijo que también habrá espacio para ellas.

3:58

¿Quién sigue siendo rubyista?

Jeremy señaló algo que le resulta especialmente desconcertante: la gente vive la experiencia de ver sus ideas cobrar vida con un agente y, a la vez, la experiencia contraria. Se siente rubyista y programador de Rails, pero hace meses que no abre Vim para escribir Ruby. De ahí su pregunta sobre dónde reside entonces la identidad. DHH había pedido el día anterior que levantaran la mano quienes escribían código en Ruby. Jeremy pidió otra cosa: que la levantaran quienes se sintieran rubyistas. La levantaron todos. La cuestión que planteó fue qué queda cuando la identidad sobrevive a la práctica, cuando alguien se llama rubyista pero ya no programa en Ruby.

Matz respondió con una perspectiva histórica. Hace unos 80 años, cuando la tecnología empezó a imponerse, se temía que las máquinas quitaran el trabajo a los humanos y se hicieran cargo de toda la producción, y citó Tiempos modernos de Chaplin como ejemplo de esa inquietud. Pero las cosas fueron de otra manera: se redujo la carga del trabajo productivo y hoy se trabaja de forma muy distinta a hace un siglo. Según Matz, algo así podría pasar en la próxima década, y la vida de los desarrolladores probablemente será diferente. Aun así, sostuvo que se puede elegir: optar por la actividad creativa y tranquila en el software en lugar de vivir la situación como que a uno lo echan del sector o le quitan un trabajo bien pagado. Para Matz, ha llegado el momento de elegir el rumbo propio y cómo sentirse y comportarse frente a la IA.

6:47

De escritor de software a creador de software

DHH retomó una idea de una conferencia suya de hace unos años. Nunca se identificó con la etiqueta de "ingeniero de software", que le parecía demasiado seria y rigurosa, y prefería considerarse "escritor de software". Cree que quienes ya se sentían incómodos con lo de ingeniero están mejor posicionados para asumir el nuevo papel de "creador de software" (software maker), que describió como una perspectiva más amplia, con más cosas que aprender que el simple perfeccionamiento de escribir código a mano. Su "gran revelación", según contó, es que ser creador resulta más satisfactorio que ser solo escritor. Le encantaba escribir software, pero el paquete completo le satisface más.

Añadió que la sensibilidad rubyista encaja especialmente bien con este momento. A la pregunta de qué valor humano se aporta al trabajar con agentes, respondió: el buen gusto, el sentido de la proporción, el sentido de la belleza. Todo lo que ha importado al escribir Ruby, en abstracto, es lo que hará de alguien un buen creador de software y un buen "programador de agentes".

"Los bandos ya no existen": contra la obsesión por Rust

DHH insistió en que nada de esto es específico de Rails ni de Ruby y dijo que le desconcierta el discurso en línea que lo trata como un problema de "nuestra pequeña comunidad". Va a afectar, según él, a todos los ámbitos, bibliotecas, frameworks y lenguajes. Criticó lo que llamó un enfoque miope del tipo "así que Rust es la próxima gran novedad". Dijo que Rust le importa un comino y que no va a convertirse en "programador de Rust", porque ese tipo de papel ya ha desaparecido. Rust le parece ahora mismo la herramienta más eficiente para ciertos fines, y si mañana apareciera algo mejor se cambiaría sin ningún drama, porque no tiene el ego invertido en Rust.

Fue más lejos al especular que quizá pronto ni siquiera se use Rust y se pase directamente a ensamblador, sin que importe la falta de portabilidad, porque se generará el código máquina necesario para cada plataforma. Su conclusión: no hay que aferrarse a la idea de "tener que pasarse al otro bando", porque los bandos ya no existen.

Jeremy matizó que DHH había tocado una ansiedad de fondo. Si uno siente esa energía por dentro, el nuevo papel está ahí y disponible. Si no la siente, se abre un abismo entre lo que se espera de uno y el temor ante fuerzas que parecen de la naturaleza. Lo comparó con que te anuncien un despido masivo y te digan que te recicles y aprendas a programar: ¿y ahora qué? Para quien ya tenía la sensibilidad de creador no hay nada nuevo, pero para quien se le pide adoptarla es una disciplina totalmente distinta.

Jeremy añadió otra observación: se metió en Ruby sin ningún interés por su valor económico, solo porque era divertido. Si ya no se obtiene reconocimiento económico por ese talento, cabe preguntarse qué pasa si en realidad nunca se necesitó. Quizá, sugirió, Ruby está volviendo a su forma natural.

12:24

Spinel: compilar Ruby a binarios nativos

Matz marcó distancia con humor respecto a DHH: tiene un ego enorme invertido en Ruby, del que depende toda su vida. Dijo sentirse en parte responsable, por así decirlo, del calentamiento global, porque Ruby consume mucha energía, y reconoció que en la era de la IA, desde un punto de vista puramente económico, Ruby no es la opción más adecuada. Sin embargo, existe un enorme impulso e inercia por la gigantesca base de código de Rails y de Ruby.

Por eso este año empezó a trabajar en Spinel, un compilador alternativo que convierte programas Ruby en binarios nativos. Según Matz, funciona con una rapidez impresionante y consume mucha menos memoria. Contó que, en sus pruebas, un programa realista usa una vigésima parte de la memoria. Puso como ejemplo una aplicación Rails que ocupe 100 megabytes. Primero dijo que el binario compilado con Spinel ocuparía 20 megabytes y enseguida se corrigió a unos 5 megabytes (5,5 según lo que se oye). Subrayó que empezó con Spinel en marzo, que el proyecto está en pañales, pero que tiene mucho potencial, y que quizá así, la próxima vez, se vuelva a elegir Ruby, compilado a binario nativo, para construir el backend.

Jeremy recordó que Matz llevaba años dándole vueltas a la idea de Spinel y que también había trabajado mucho en mruby, y que cada implementación ocupa un lugar distinto. mruby respondía a qué puede ofrecer Ruby a un entorno embebido, y Spinel parece responder a qué puede ofrecer Ruby a los agentes. De ahí preguntó qué hace que Ruby sea Ruby: si se le quitan cosas, ¿sigue siéndolo?

Matz admitió que no está del todo claro. A base de prueba y error ha ido definiendo qué es Ruby y qué no, y el resultado es el CRuby que usa casi todo el mundo. Pero no hay una solución única: algunos prefieren JRuby en entornos empresariales; CRuby es demasiado grande para microdispositivos embebidos, y quizá el propio Ruby sea demasiado lento para ciertos usos incluso con el compilador JIT incorporado recientemente. Spinel toma un subconjunto de Ruby orientado al rendimiento que puede compilarse a binario nativo y ejecutarse a gran velocidad. Y añadió que, al menos por ahora, solo él puede trazar la línea entre lo que es Ruby y lo que no.

16:38

Roundhouse y el papel de la programación en la creación de software

Jeremy mencionó Roundhouse, que describió como una forma de usar una aplicación Ruby on Rails como "oráculo de conformidad": una especificación a la que recurre un agente para generar después Ruby puro sin Rails u otros lenguajes. Preguntó si ese andamiaje en Ruby es una manera de preservar Ruby o solo un paso intermedio tras el cual se abandonaría la aplicación original.

Matz respondió de forma más general. Cree que cada persona es distinta y que la creación de software tiene varios aspectos. Según sus previsiones, la mayoría se centrará en la dirección del producto y en su encaje en el mercado. Hay quienes se sienten muy motivados por la parte de programar, y esa parte, al menos como carrera profesional, cree que se perderá en un futuro bastante cercano. A la vez, eso obliga a centrarse en resolver problemas. Si antes faltaban capacidad o experiencia para construir una solución, ahora los agentes permiten hacerlo aunque no se tengan todos los conocimientos.

Aun así, Matz no cree que todo el mundo vaya a crear soluciones. La mayoría de la gente simplemente espera que otros se las den, y por eso los proveedores de soluciones son, en cierto modo, "los elegidos", como los presentes en la sala. Lo que les toca es potenciar su capacidad y ofrecer soluciones para toda la humanidad, algo que considera más importante que centrarse en una tecnología concreta, en línea con lo que decía DHH. Pero insistió en que Ruby es un gran lenguaje, el favorito de mucha gente, y que motiva. En su opinión, incluso en la era de la IA, la motivación es el recurso más importante que aportan los humanos y que solo ellos pueden aportar.

20:09

Ruby como lenguaje para explicar

Jeremy recordó que conoció Ruby a través de artículos de la revista IEEE escritos por Dave Thomas y otros, que usaban Ruby para describir conceptos. Pensó que era pseudocódigo y le sorprendió descubrir que se podía ejecutar. A su juicio, cuando ya no se escriba la mayoría de las líneas de código, de vez en cuando seguirá haciendo falta entender un algoritmo y cómo funciona, y Ruby es el mejor lenguaje para explicar conceptos. Si ahora un agente, en lugar de Dave Thomas, le explica su código en Rust mediante Ruby, lo ve como un regreso al esplendor.

Más allá del pastel fijo

DHH señaló que buena parte de la ansiedad viene de no poder pensar más allá del "pastel fijo". La gente imagina un futuro con el mismo número de aplicaciones que hoy y concluye que harán falta muchos menos programadores. Reconoció que eso es cierto para el software actual: las aplicaciones que existen hoy necesitarán muchísimos menos programadores para mantenerse y desarrollarse. Pero sostuvo que se creará mucho más. Como señal citó las estadísticas de GitHub y el hecho de que, según dijo, se cae cada cinco minutos por la explosión en la creación de software. Habrá muchísimas más aplicaciones que atender y hará falta gente para ello, y por eso se declaró muy optimista respecto a los programadores que acepten su nuevo papel de creadores. Advirtió, eso sí, que no ocurrirá si uno se aferra tanto al lápiz que no puede imaginar que la calculadora le ayude.

¿Vuelta al diseño en cascada?

Jeremy recordó los primeros años 2000 y el auge de la programación extrema, cuando compensaba tener un lenguaje muy fluido porque el coste de ejecución era insignificante frente al coste de desarrollo, y cuando importaban el precio de cambiar una especificación, los ciclos cortos y prácticas como el desarrollo guiado por pruebas. Ve una ironía en la situación actual: si los artefactos del trabajo pasan a ser Markdown y especificaciones, todo lo que precedió a la programación extrema, y que se abandonó por sus ciclos largos y costes altos, ahora cuesta casi nada. ¿Se vuelve entonces al gran diseño inicial y al modelo en cascada?

Matz dijo no saberlo. A su juicio, la metodología concreta importa menos porque la estructura del código pierde relevancia cuando ya no se toca el código. Lo que sí hay que formalizar y aprender en los próximos años es cómo crear una visión del software, cómo determinar cuál es el problema y cuál debería ser la solución, y cómo dirigir a la IA para construirla.

22:40

Matz, el vibe coder original

Matz se refirió a las historias de fracaso del vibe coding: funciona para hacer un Tetris, pero muchos intentos de construir aplicaciones realistas fracasaron estrepitosamente. En cambio, observa que la gente de su entorno, como los colaboradores del núcleo de Ruby, tiene una tasa de éxito sorprendentemente alta al programar así. Lo interpreta como que los programadores con experiencia saben dirigir la creación de software y definir los objetivos de los agentes, y cree que ese conocimiento hay que formalizarlo y transmitirlo a las siguientes generaciones.

Luego bromeó con que él es el líder del vibe coding desde hace unos quince años. Como líder del núcleo de Ruby, pregunta a los colaboradores qué les parece añadir tal función o mejorar el recolector de basura de tal manera. Una "inteligencia orgánica" escribe el código, él lo prueba, lo revisa y decide integrarlo. Así es como ya trabajan, dijo, y así se trabajará a partir de ahora: todo el mundo tendrá a su alrededor algo parecido a colaboradores clave.

DHH lo describió como un ascenso. A veces te ascienden a un puesto que no te interesa, admitió, pero cree que este, si se le dedican cinco minutos, resulta inmensamente satisfactorio. Contó que vivió lo mismo que Matz con Rails: la primera versión la escribió entera, en la segunda quizá la mitad, y para la sexta y la séptima casi nada, solo la dirección: hacia dónde ir, qué es bueno, qué está de moda y qué no. Eso, dijo, es ahora accesible para todos.

El dilema del innovador: "No es escalable"

DHH trajo a colación el dilema del innovador: cuando surge una tecnología nueva, a las empresas establecidas les parece un juguete que solo sirve para lo de gama baja, así que no le prestan atención porque sus grandes clientes no se interesan por juguetes. Recordó que, cuando Ruby saltó a la fama, se decía que "no es escalable", y dijo que eso mismo se oye ahora sobre la IA, con el mismo error. Según DHH, el vibe coding no solo funciona y produce resultados excelentes, sino que mejora a un ritmo astronómico, de modo que lo que hoy no escala lo hará "dentro de cinco minutos". Por eso pidió no menospreciar los juguetes solo porque por un momento no hacen lo que uno quiere.

29:20

Slop, granadas de slop y formas de afrontarlo

Jeremy relacionó ese desprecio con expresiones como llamar "slop" (basura) al código de IA o hablar de "meat proxies" (intermediarios de carne y hueso). Reconoció que son términos sugerentes y a menudo con algo de verdad, y preguntó cuánto tienen de diagnóstico y cuánto de mecanismo para sobrellevar la situación. DHH respondió de inmediato que un 90 % es forma de sobrellevarla, aunque luego matizó que no le gusta predecir y que habla en términos de probabilidad: lo más probable es que sean muletas, y cuanto antes se suelten, antes se podrá correr.

Distinguió entre los dos términos. El de "meat proxy" le parece que describe una fase temporal real. Si alguien pasa el tiempo copiando y pegando mensajes de error entre el agente y la terminal, debería dejar que el agente los lea directamente, porque ese papel es insatisfactorio e ineficaz. Muchas cosas son así cuando empiezan a funcionar, sin procesos ni herramientas pulidos, y lo lógico es aspirar a algo mejor. En cambio, lo de "slop" le parece una excusa de primer orden. Sostuvo que la idea de que los agentes no pueden escribir código original, de calidad y sin errores es a estas alturas una ilusión, una "psicosis por la IA" más grave que el exceso de optimismo, porque equivale a esconder la cabeza. Cree que es hora de abandonar el término y que tampoco durará mucho el de "slop grenade".

Jeremy defendió que "granada de slop" capta algo que "slop" no capta: es la basura más la forma de lanzártela. Lo comparó con recibir un comunicado de prensa mal pensado que obliga a quien lo recibe a dedicar atención a analizarlo y decidir si merece la pena, porque quien lo envió no llevó la idea hasta el final. Hay algo más que escribir el código, dijo, y eso es lo que falta.

DHH respondió que no le importan en absoluto esas granadas. Las trata como sugerencias que no tiene por qué aceptar, y si una le gusta, su agente la analiza a fondo y le presenta una implementación impecable. Dijo que prefiere con creces las pull requests e issues abiertas por agentes, porque las considera de mayor calidad que las de un humano medio en cualquier repositorio que haya mantenido. Eso no significa aceptar la implementación, y ve una ventaja en ello: si quien la envía no escribió el código, no sentirá pérdida cuando se borre y se reescriba, en realidad por el agente de DHH. Atribuyó gran parte de la fricción histórica en el código abierto a que la gente se encariñaba con líneas en las que había invertido mucha energía. Él asegura no haber tenido nunca ese problema y cree que quedan pocas líneas escritas personalmente en la base de código de Rails, algo que celebra como progreso. Para DHH, dejar de escribir código a mano permite a más gente una creación sin ego, apegada solo a las ideas y a la mejora.

Matz añadió que la avalancha de pull requests e issues se puede gestionar con la propia IA y contó una anécdota del día anterior. Al despertarse revisó GitHub y el repositorio de Spinel no tenía ninguna issue ni pull request. Fue andando a la conferencia a dar su charla y, justo antes, en una hora, le llegaron 20 issues y una pull request. Sacó el móvil, abrió la app de Claude y le pidió que resolviera esos problemas. Al salir de la charla, Claude ya había resuelto doce. "Así es como creamos software ahora", resumió, y añadió que el valor de la IA se puede aprovechar usando la propia IA.

35:38

¿Cuánto criterio se cede a los agentes?

Jeremy observó que en los últimos nueve meses se ha ido aceptando que los modelos generan código excelente, y que la gente busca entonces lo que todavía no pueden hacer, una brecha cada vez más pequeña. Una de esas supuestas reservas humanas es el buen criterio. Pero al ver a Claude repasar esas issues una a una y tomar decisiones acertadas, se preguntó si eso sigue siendo un límite y cuánto criterio se cede a los agentes.

DHH respondió: tanto como justifique su competencia, medida por la confianza en que la última pull request se gestionó bien, igual que con cualquier persona. Dijo que observa a los agentes buscando las mismas señales que en un programador de 37signals: si está preparado para más responsabilidad y cada cuánto hay que supervisar su trabajo. Cuanta más experiencia acumula el agente o el empleado, menos lo supervisa, más confía en él y más acepta el riesgo de que algo salga mal. Si lee cada línea sabe lo que hace; si deja de leerlas, depende de los resultados y de la confianza, y de vez en cuando el agente se equivocará. Pero todos escribimos código con errores constantemente, argumentó, así que exigir que la nueva inteligencia sea perfecta desde el primer día es para él la verdadera "psicosis de la IA".

Jeremy planteó una asimetría con los coches autónomos: cualquier colisión de un vehículo autónomo parece intolerable, mientras que se aceptan decenas de miles al año cuando conduce un humano. ¿Es más excusable el error cuando hay un humano al volante? DHH contestó que sí en una sociedad dominada por las demandas judiciales, y que no en una sociedad sensata que se rige por resultados. Puso como ejemplo Dinamarca, donde, según dijo, no existen las demandas por daños personales como rama relevante del derecho, y predijo que a esas sociedades les irá mejor. Citó datos que ha visto según los cuales la conducción autónoma tiene unas ocho veces menos probabilidades de colisión que un conductor medio. Con entre 40.000 y 45.000 muertes anuales en carretera en Estados Unidos, reducirlas a una octava parte supondría unas 30.000 personas vivas al final del año, y considera que una sociedad que ignora eso no es sensata. Jeremy señaló que estos mismos debates aparecen en sanidad e ingeniería en general, y preguntó si querríamos que un equipo de IA diseñara un puente.

La preocupación de Matz: la infraestructura invisible

Matz expresó entonces su mayor preocupación. Aunque se cree software con agentes sin conocer los detalles, la solución seguirá dependiendo de componentes existentes: el compilador de Rust, Ruby on Rails, el intérprete de Ruby, Linux o PostgreSQL. Cuanto más se dependa de los agentes, más transparentes se volverán esos componentes, en su mayoría de código abierto, y la sociedad dejará de verlos y de preocuparse por su mantenimiento y su sostenibilidad, aunque sean muy importantes. Dijo que hay que trabajar para mantenerlos, incluidos Ruby on Rails, Linux y las bases de datos.

41:37

Cuando las abstracciones dejan de ser necesarias

Jeremy conectó esto con lo que DHH había dicho sobre los inconvenientes de la abstracción. ¿En qué momento se prescinde de esos componentes y cada uno genera los suyos? Por ejemplo, implementar directamente el protocolo WebSocket en lugar de usar una biblioteca. Su mente de ingeniero veía inconvenientes claros: un ecosistema de implementaciones independientes que deben interoperar, ineficiencias a gran escala y errores que habría que arreglar en 100.000 sitios en lugar de en uno.

DHH lo llamó la próxima frontera. Sostuvo que las abstracciones de nuestro código son obstáculos para la concurrencia y el paralelismo, que lo mismo ocurre en parte con frameworks y lenguajes, y que con el tiempo se llegará "al nivel del fotón", directamente a la física. En su lectura, los últimos 60 años de desarrollo de software han consistido en lidiar con los límites de la cognición humana, y si esos límites dejan de aplicarse, tampoco hacen falta esas soluciones. Imagina un futuro parecido a lo que ya hacen los modelos que generan mundos de juego sobre la marcha: sistemas operativos, controladores, frameworks y lenguajes generados al vuelo. Reconoció que suena a ciencia ficción, pero recordó que también lo parecía hace poco que los agentes escribieran todas nuestras aplicaciones web. Por eso pidió más ciencia ficción y más imaginación. Buena parte de lo que pensamos sobre los peligros de la IA viene de HAL 9000, 2001: Una odisea del espacio o Terminator, obras de hace entre 40 y 100 años, y como en cierta medida ya se han cumplido, hacen falta nuevos horizontes que inspiren una nueva era de la informática.

44:34

La era Commodore 64 de la IA

Jeremy preguntó por los límites de eficiencia que aparecen enseguida: si se salta la libc para hablar casi en microcódigo con la CPU, eso exigirá muchos más tokens. Además de la eficiencia en ejecución y en tiempo de desarrollo, este último ya casi reducido a cero, está el coste en tokens de representar la realidad y operar en ella.

DHH respondió que estamos en algo parecido al Commodore 64: hoy tenemos un agente de 1 MHz, el año que viene uno diez veces más rápido y al siguiente cien, y los humanos no sabemos comprender colectivamente el crecimiento exponencial. Las preocupaciones por el coste de los tokens son relevantes ahora, advirtió, y hay que vigilarlas o la factura se disparará, pero son a corto plazo. Calificó de ignorancia económica el temor a que Anthropic y OpenAI dejen a todos en la estacada. Según DHH, los modelos de pesos abiertos ya son muy buenos y nunca ha habido tanta competencia en un nuevo campo de la informática: en móviles había dos actores, Google y Apple; en escritorio, Windows y Apple; ahora hay "un millón de proveedores de tokens". Quizá Anthropic y OpenAI vayan en cabeza, pero su ventaja se mide en meses, si no en semanas. Su pronóstico: todo será más barato y mejor.

47:01

Ruby, uno de los lenguajes más eficientes en tokens

Jeremy recordó una observación de hace unos meses de Matz y Endoh-san sobre Ruby como lenguaje eficiente en tokens. Matz explicó que su equipo comparó varios lenguajes, entre ellos Ruby, Python, JavaScript, TypeScript, Rust, Kotlin, Go y Haskell, unos 13 en total según recordaba. Tres destacaron por su eficiencia tanto en número de tokens como en tiempo de ejecución: Ruby, Python y JavaScript puro. Y, curiosamente, el tipado estático no contribuyó a ninguna de las dos. DHH reaccionó con un "¡te lo dije!".

Jeremy añadió que, a falta de una medida mejor, diría que los agentes "se lo pasan bien" con estos lenguajes porque llegan rápido al resultado. Matz aventuró, reconociendo que es una suposición arriesgada, que un lenguaje diseñado para que las personas disfruten programando probablemente también resulte agradable para las IA.

Jeremy introdujo un contrapunto: en una prueba de Chad Fowler con una serie de tareas representativas, los modelos no eligieron Ruby en ninguna, sino sobre todo Python, JavaScript y otros según el problema, quizá como reflejo de lo que vieron en el preentrenamiento. Eso le llevó a preguntarse si los modelos hacen lo que queremos o simplemente reproducen lo que se les enseñó, incluida su propia idea interna de "Rails".

DHH respondió que a los agentes no les importa: si se les pide Ruby, lo hablan muy bien, y dijo que las evaluaciones de agentes que han estado haciendo lo demuestran. Hablan Python por defecto porque es el lenguaje de los investigadores de aprendizaje automático que los construyen, no porque sea el que mejor dominan. Consideró miope obsesionarse con el preentrenamiento y admitió que al principio cayeron en esa idea, pensando en ayudar a los laboratorios a enseñar más Ruby a los modelos. Ahora cree que los principios del buen desarrollo son universales y que da igual si se aprenden en JavaScript, Python o Smalltalk. Calificó de segundo error de la era pasada pensar que los modelos son loros que repiten lo aprendido. Para él son pensadores muy creativos, lo que explica también su peligro en seguridad, porque encadenan ataques de forma ingeniosa y hacen falta agentes propios para defenderse. Incluso los considera más creativos que los humanos que los dirigen. Su consejo: que te hablen en Ruby cuando quieras examinar el código, porque es el mejor lenguaje para humanos, y que luego vuelvan a código máquina para la CPU, que es lo que hace Spinel.

52:13

Los valores de Rails y encontrar la propia tribu

Jeremy planteó qué hay más allá de Rails como framework. Rails ha sido durante 20 años la manifestación concreta de lo que estos programadores aportan, y ahora el dominio es más amplio, pero persiste el deseo de conservar Rails, o al menos sus valores. Mencionó que DHH está empezando algo nuevo con Omarchy, cuyos valores también atraen a gente, y el lema MINASWAN ("Matz es majo, así que nosotros también lo somos"). Admitió que ese lema nunca le había convencido del todo, porque no se trata de comportarse de cierta manera solo porque otra persona lo haga, pero lo ve como un permiso para relacionarse con un lenguaje de determinada forma y para valorar lo que Ruby valora, algo que actúa como filtro de quién se siente atraído. Preguntó a ambos qué será lo siguiente para ellos.

Matz dijo no saberlo. Contó que respeta mucho a Linus Torvalds por crear Linux y además Git: una gran obra ya es una historia, pero dos son casi una leyenda. Por eso respeta también a DHH, que creó Ruby on Rails y Omarchy y "está escribiendo una leyenda". Él ha creado Ruby, y sobre qué más podría hacer, dijo que tendría que pensarlo.

DHH subrayó la importancia de encontrar la propia tribu: gente a la que le gusten las mismas cosas y con una visión del mundo compartida, aunque no idéntica, porque hace falta algo de fricción y desacuerdo para aprender unos de otros. Cree que todos levantaron la mano al preguntarles si se sentían rubyistas porque comparten una visión de Ruby como forma de expresión al programar máquinas. No todo el mundo la comparte, y hay mucha gente a la que desagradan Ruby, Rails, Omarchy o cualquier cosa en la que él haya participado, y eso le parece bien. Un mundo con un solo lenguaje, un solo framework y un solo sistema operativo quizá sería eficiente, pero nada divertido, porque los humanos piensan de forma muy diversa. Puso como ejemplo el debate entre tipado estático y dinámico: los argumentos no mueven a nadie porque a esas posturas no se llegó razonando, sino que son casi programas preinstalados en el cerebro, como tabuladores frente a espacios o Emacs frente a Vim. Hay que celebrar esas líneas divisorias y encontrar otras nuevas. A medida que los agentes escriban más código, dijo, harán falta nuevas formas de conectar y crear camaradería, y cree que esta comunidad tiene una oportunidad única para hacerlo junta.

56:49

Lo que Ruby y Rails hicieron bien

Jeremy preguntó qué han hecho bien Ruby y Rails en estas décadas. Para DHH, centrarse en la autonomía: que los programadores lleguen mucho más lejos que con herramientas menos eficaces, placenteras y bonitas. Contó que Ruby fue para él una revelación, no solo una herramienta práctica para hacer aplicaciones web, sino una fuente de alegría y motivación. Cree que la comunidad ha entendido mejor que nadie la psicología humana y lo que impulsa la productividad, con herramientas ergonómicas y bellas que producen algo que puede parecer frívolo, "código que parece poesía", más allá de si se ejecuta rápido.

Matizó la otra cara del momento. Hay aplicaciones en las que el rendimiento es crítico y que pueden mejorar reescritas en algo como Rust, pero muchísimas más en las que esa eficiencia no importa. Afirmó que la gran mayoría de aplicaciones Rails podrían ejecutarse en una sola Raspberry Pi. Por eso seguirá creando todas sus nuevas aplicaciones web en Ruby on Rails y disfrutará viendo entre bastidores cómo los agentes generan código bonito. Si algo se vuelve tan popular que compense económicamente reescribirlo en Rust o código máquina, se hará, y luego se podrá volver a Ruby por puro placer. Todo es flexible, concluyó, y nadie está condenado a convertirse en programador de Rust.

Matz dijo que, para él, la mayor contribución de la comunidad Ruby ha sido mostrar la importancia de la alegría y la motivación en la programación. Las personas necesitan motivación para crear software, para crear cualquier cosa y para mejorar la sociedad, y cuando sienten alegría son mucho más productivas. Hace 30 años eso no era sentido común. Mientras las preocupaciones humanas sigan siendo las mismas, cree que la motivación, la alegría y la libertad seguirán importando. La tecnología va y viene, y quizá Ruby pierda importancia en el futuro, pero esos valores no. Jeremy añadió que la felicidad profesional de un programador combina autonomía y alegría, y también que te paguen: un reconocimiento de lo que se crea y de que hay futuro en ese trabajo.

Agradecimientos

Para cerrar, Jeremy preguntó qué es lo que más agradece cada uno tras 20 años de colaboración entre Ruby y Rails. DHH agradeció a Matz haberle permitido a él y a la comunidad de Rails "terminar el libro que él comenzó", poniendo al programador de aplicaciones al mismo nivel que al diseñador del lenguaje, hasta el punto de que no se distingue la diferencia. Matz agradeció a DHH y a la comunidad de Rails haber dado a conocer Ruby al mundo. Antes de Rails, dijo, Ruby existía pero casi nadie lo conocía. Después, aplicaciones como Shopify, GitHub y las primeras versiones de Twitter se construyeron con Ruby on Rails, y muchísimas startups lo usaron, obtuvieron beneficios y cambiaron el mundo. Eso le llena de alegría, le dio cierta autoestima y, gracias a Rails, puede dedicarse a Ruby a tiempo completo.