Matz, DHH, and Jeremy Daer on What It Means to Be a Rubyist When Agents Write the Code

Open on YouTube ↗
Overview

At Rails World 2026, Jeremy Daer of 37signals sat down with Yukihiro "Matz" Matsumoto, Ruby's creator, and David Heinemeier Hansson (DHH), Rails' creator, for a fireside chat on the future of Ruby and Rails. Daer opened by joking that the conference could drop the R, L, and S from its name and just be "AI World," since AI had dominated every conversation. DHH's keynote the day before had raised more questions than it answered: how do you shape a language and a framework when programmers are no longer writing most of the code themselves?

30 min read

The two creators largely agreed but differed in emphasis. DHH was emphatic and optimistic. He treats agent-driven development as a settled trajectory and calls much of the skepticism "cope." Matz was more cautious about predictions, more attached to Ruby as a personal life's work, and more concerned about what happens to the open-source infrastructure everything depends on. Along the way Matz described Spinel, a new compiler he started this year that turns Ruby programs into native binaries.

0:56

Probabilities, not predictions

Daer began by noting that people want predictions most when the future is least certain, and asked each speaker what they expected by the end of this year or next.

Matz said he couldn't tell the direction because everything had changed so quickly. Two years ago, he said, he could not have imagined giving up Emacs as his main code editor. He still uses Emacs, but since around last November he has been writing essentially all of his code through Claude Code, and he described the change as challenging for him.

DHH said the right frame is probabilities rather than certainty. As he had said in his keynote, he expects that by the end of the year "virtually all" programmers, not just most, will be working the way Matz now does, through agents. He acknowledged that this feels destabilizing, like a big wave where you don't know where to stand. He said the community has a collective responsibility to help each other reach acceptance, because "none of us has the power" to stop it even if we wanted to.

Speedrunning the stages of grief

Daer remarked that they were "speedrunning the stages of grief," and DHH took up the framing. He said many people have moved past anger and are now bargaining with the future, which he thinks doesn't work: "The AI will tell you and listen to you, but it will not change its trajectory." His advice was to move quickly through bargaining, take a short pass through depression, and arrive at acceptance. There, he said, many people have found the other side "amazing," fun in the same ways programming has always been fun: having ideas and seeing machines do new things, only much faster.

He also said the process can't be instant. It took time for him too, even if he went through it faster than most, and he thinks there should be room for nostalgia about something you loved before you move to something you may or may not like better. Every paradigm shift in computing, he noted, left some people wishing it hadn't happened. The internet and mobile were both like this, and some people "stayed on the station." He said there will be room for that this time as well.

3:58

Who still feels like a Rubyist?

Daer raised the identity question. He considers himself a Rubyist and a Rails programmer, yet he hasn't been in Vim writing Ruby in months. He asked the audience who still felt like a Rubyist, and essentially every hand went up. So what remains of the identity when the practice changes?

Matz answered with a historical comparison. When industrial technology advanced roughly 80 or more years ago, people worried that machines would take all the jobs, and that anxiety produced films like Chaplin's Modern Times. Things turned out differently than feared: the burden of manufacturing fell, and people came to work differently than they did a century ago. Matz suggested something similar could happen over the next decade, and that the life of a "software maker" will look different from today. His point was that we can still choose how we feel and behave. We can pursue comfortable, creative work with software instead of thinking only of being pushed out of a high-paying job. Now, he said, is the time to choose that direction.

6:47

From software writer to software maker

DHH returned to a theme from an earlier keynote of his: he never saw himself as a software engineer, a label that felt "too serious, too rigorous." He saw himself as a software writer. He argued that people who already felt the engineer label didn't fit are better placed to become what he now calls a software maker, a broader role with more to consider and learn than perfecting the craft of handwriting code. His "big revelation," he said, is that being a software maker is more satisfying than being only a software writer, even though he loved being a writer.

He believes Rubyists' sensibilities suit this moment unusually well. The human value added when working with agents is taste, a sense of proportion, a sense of beauty. What Rubyists cared about when writing Ruby code, abstracted up a level, is what makes a good software maker and a good "agent driver."

He also called it "puzzling" that some online discussion treats this shift as specific to the Ruby community. In his view it is coming for every domain, library, framework, and language. He dismissed the idea that "Rust is the next thing" as a new identity to adopt. He has no interest in becoming a Rust programmer because that role "has been abstracted away." Rust is simply the most efficient tool right now, and if a better one arrives tomorrow he would switch with none of the grief the room felt about Ruby, because he has no ego invested in it. He speculated that before long agents might skip Rust and go straight to assembler, with portability no longer mattering because agents could write the machine code for each target platform. "The camps are gone," he said.

Daer pushed on the anxiety in this pitch. If you're told the energy is out there but you don't feel it, it can sound like being told about a mass layoff and advised to reskill. People who always had the maker sensibility may take to it naturally, but for others it is an entirely new discipline. DHH agreed that some of it simply takes time for the ego to adjust, which is why he keeps returning to the stages of grief.

Daer added a personal observation. He got into Ruby with no interest in its economic value; he liked it because it was fun. If economic recognition for Ruby expertise fades, he asked, what if you never needed it in the first place? Perhaps Ruby is "going back to its natural form."

12:24

Spinel: compiling Ruby to native binaries

Matz said that unlike DHH, he has a "huge ego" invested in Ruby, since his whole life depends on it. He also said, half-jokingly, that he is partly responsible for global warming because Ruby consumes so much energy. In purely economic terms, he acknowledged, Ruby may not be the obvious choice in the AI era, but there is huge momentum and inertia behind the world's Ruby and Rails codebases.

That is why, this year, he started working on an alternative Ruby compiler called Spinel, which compiles Ruby programs into native binaries. He said it runs "brilliantly fast" and uses far less memory. His figures were a little tangled as he spoke. He first mentioned a real-world program running in about a twentieth of the memory, then gave the example that an application using 100 megabytes might use about 20 megabytes when compiled with Spinel, while correcting himself mid-sentence. He stressed that he only started Spinel in March, so it is "only a baby," but he sees real potential. Perhaps next time someone, DHH included, would choose Ruby again and compile it to a native binary for a backend.

Daer noted that Matz had carried the idea of Spinel for years alongside his long work on mruby. Each project asks a different question: mruby asks what Ruby offers embedded environments, Ruby itself asks what it offers humans, and Spinel seems to ask what Ruby offers agents.

Matz said that defining what Ruby is, and what it stops being when you take things away, is not entirely clear, and that trial and error produced the CRuby almost everyone uses. But one size doesn't fit all. Some people prefer JRuby for enterprise work, CRuby is too large for tiny embedded devices, and Ruby can be too slow for some uses even with the JIT compiler the team recently shipped. Spinel targets a performance-oriented subset of the language that can be compiled to native code. At least for now, Matz said, only he can draw the line between what is Ruby and what is not.

16:38

Roundhouse, solution providers, and motivation

Daer then asked about Roundhouse, which he described as a way of treating a Ruby or Rails application as a kind of conformance oracle: an agent uses it as a spec and generates either pure Ruby without Rails or code in other languages. Is Ruby scaffolding in that picture, a way of preserving Ruby, or a single step before the Ruby app is set aside?

Matz's answer went broader. He foresees most people shifting toward product direction and product and market management, while some will remain strongly motivated by coding itself. He expects coding as a career to be largely taken away "in the quite near future." At the same time, people are learning to focus on solving problems. In the past, creating a solution required ability, skill, and experience; now agents let people build solutions without that depth of knowledge.

Even so, he observed, not everyone will create solutions. Most people are waiting for solutions to be provided, and so solution providers, like the people in the room, are in a sense "the chosen ones." What matters most is strengthening your ability to provide solutions for humanity, more than focusing on a particular technology, which he said agrees with DHH. But Ruby is still a nice language and a favorite of many, and it motivates people. Even in the AI age, he argued, motivation is the most important resource, and it comes from humans, not AI.

20:09

Ruby as explanation, and thinking beyond the fixed pie

DHH described his own first encounter with Ruby: magazine articles by Dave Thomas and others that explained programming concepts using Ruby. He assumed the examples were pseudocode and was surprised to learn they were executable. As people stop writing most lines of code themselves, he expects they will still sometimes want to understand an algorithm or how something works, and he called Ruby "the best programming language for explaining concepts." Instead of Dave Thomas explaining concepts in a magazine, he imagines an agent explaining his Rust code to him in Ruby, which he called "an amazing return to form."

He then argued that much of the anxiety comes from fixed-pie thinking. People imagine the future will have the same number of applications as today and conclude that far fewer programmers will be needed to maintain them. DHH agreed that today's applications will need "vastly, vastly fewer programmers" to maintain and evolve. But he said we will make many more applications. He pointed to what he sees as an explosion of software creation, citing GitHub's statistics and its frequent outages as evidence. With so much more software to tend, people will be needed. He called this "job security," but only for those who accept the new role, not those who "hold on to the pencil so tight that you can't imagine the calculator helping you out."

22:40

Are we back to waterfall? Matz, the original vibe coder

Daer noted an irony. In the early 2000s, extreme programming and test-driven development argued that a fluent language's runtime cost was trivial compared with development cost and the cost of changing a spec, which is why tight feedback loops mattered. Now that code is nearly free to produce, the artifacts of the work seem to be Markdown and specs. Are we returning to big design up front and waterfall?

Matz said he doesn't know, and that specific methodologies matter less now because code structure matters less when people don't touch the code. What needs to be formalized and learned over the next few years is how to form a vision of the software, decide what the solution should be, and manage AI to build it. He contrasted familiar vibe-coding failure stories, where it's fine for a Tetris clone but realistic applications often fail "miserably," with his experience among Ruby core committers. When they tried vibe coding parts of Ruby's tooling, they had a "surprisingly high rate of success." He took this to mean experienced programmers know how to direct software making and define goals for agents, and that this knowledge should be formalized and taught to the next generation.

He then called himself "the leader of vibe coding," joking that he has been vibe coding for 15 years. As the leader of Ruby core development, he asks committers, "How about this feature?" and "organic intelligence" produces the software. He tests and reviews it and decides whether to merge. He asks about improving the garbage collector, the committers return with code, and he says, "Nice." That is how he works, he said, and now everyone has "core committers" around them.

DHH called this "a promotion." Sometimes you get promoted into a job you don't want, he conceded, but he thinks that given five minutes, people will find this one immensely satisfying. His Rails experience matched Matz's. He wrote everything in the first version of Rails, maybe half of the second, and barely anything by versions six and seven. His role became direction: where to go, what's good, what's in and out. That role, he said, is now available to everyone.

He also invoked the innovator's dilemma. New technology first looks like a toy that handles only the low end, and incumbents dismiss it. Anyone around when Ruby rose to prominence, he said, will remember "it doesn't scale." People are saying the same about AI now and, in his view, are wrong in the same way, because vibe coding already produces great outcomes and is improving at an "astronomical rate." Whatever doesn't scale now, he said, "is going to scale in five minutes from now." His warning was not to sit as the incumbent scoffing at toys.

29:20

Slop, meat proxies, and slop grenades

Daer asked about contemptuous terms for AI output, such as "slop" and "meat proxies." They are evocative and often true in some sense, he said, but how much are they real diagnoses and how much are they cope? DHH answered: "90% cope." Matz said he didn't know and doesn't like making predictions. DHH replied that this is why he talks in probabilities, and the probability is that it's cope.

DHH treated the two terms differently. "Meat proxy" describes a real but temporary inefficiency: if you're copying and pasting error messages between agents, you should let the agent read the errors directly. He called that role "unfulfilling" and "ineffective" and said it is a temporary plank from A to B while tooling and processes are rough. "Slop," on the other hand, he called "a cope of the highest order." The idea that agents cannot write original, high-quality, bug-free code is "at this point delusional," more of an "AI psychosis" than optimism about their capabilities. He said it was soon time to retire the word, and that even "slop grenade" wasn't long for this world.

Daer defended "slop grenade" as capturing something "slop" alone doesn't: the delivery. It describes work dumped on someone else, like a PR that hasn't been thought through, where the receiver must spend attention working out whether it's worth shipping. The missing piece is everything beyond writing code.

DHH said he doesn't mind slop grenades. He treats them as suggestions he doesn't have to catch, and if he likes an idea, his agent picks the slop apart and returns a clean implementation. He said he vastly prefers PRs and issues opened by agents, calling them higher quality than those from "any average human" on any repo he has managed. Not being bound to the submitted code is a feature: if you didn't write it, you won't feel loss when he throws it away and his agent rewrites it. He argued that much of the friction in past open-source communities came from people being attached to lines of code they'd invested energy in. He said he has never had that problem, since few lines of Rails he wrote remain, and he thinks agent-written code lets more people experience "egoless" production and attachment only to ideas.

Matz offered a concrete example of handling a flood of contributions with AI. The previous morning, Spinel had zero open issues and zero pull requests. By just before DHH's keynote, he had received 20 issues and one pull request within about an hour. He opened the Claude app on his phone and asked it to address them, and by the end of the keynote it had resolved 12 of the issues automatically. His conclusion was that everything has changed and that AI can be used to handle what AI produces.

35:38

How much judgment do we cede to agents?

Daer observed that over the past nine months, as people have accepted that models can write good code, they keep looking for the shrinking gap where humans remain superior. One candidate is judgment. But watching Claude loop through issues and make the right calls, is judgment still a limiting factor?

DHH's answer: cede "as much as their competence warrants," measured by your trust built from how well previous work was handled, just as with a human. He evaluates agents the way he would a programmer at 37signals: are they ready for more responsibility, and how often does he need to check in? The more senior the agent or employee, the less he checks and the more he accepts the risk that they occasionally get it wrong. If you read every line, you know what every line does; if you stop, you rely on outputs and trust. Agents will sometimes make mistakes, he said, but so does everyone. He called the expectation that a new intelligence be perfect from day one "the AI psychosis." It is improving rapidly and isn't perfect yet, "and neither are we."

Daer raised an asymmetry, comparing it to self-driving cars, where any collision is seen as too many even though humans cause tens of thousands a year. Is a human at the wheel somehow more excusable? DHH said yes in "a society ruled by lawsuits," but no in "a sane society ruled by outcomes." He noted that Denmark has no personal-injury lawsuits as a category of law shaping decisions, and predicted such societies will do better. He cited figures he had seen suggesting self-driving technology is about eight times less likely to crash than the average human driver, and said that 40,000 to 45,000 people die in U.S. traffic each year. Cutting that to an eighth, by his math, would leave 30,000 more people alive annually, and he said a society that ignores that is not sane. Daer noted the same questions arise in healthcare and in real engineering, asking whether you'd want an AI team designing a bridge. The discussion moved on without answering directly.

Matz's concern: invisible open-source infrastructure

Matz raised what he called his biggest concern. Software built with agents, even without people knowing the details, still depends on existing components: the Rust compiler, Ruby and Rails, the Ruby interpreter, Linux, Apache, databases. The more people rely on agents, the more "transparent" these components become. Most are open source and vital to society, but people won't see them or care about them, and that threatens their maintenance and sustainability. He said we need to work on sustaining those components, including Ruby, Rails, Linux, and databases.

41:37

When abstractions stop being necessary

Daer connected this to a question about abstraction. At what point do people bypass shared components and each invent their own, for example skipping a WebSockets library and having an agent implement the protocol directly? That would create a sprawling ecosystem of independent implementations that still must interoperate. His engineering instinct pointed to the downsides: lost economies of scale, and bugs fixed in 100,000 places instead of one.

DHH called this "the next frontier." He argued that abstractions in our codebases, frameworks, and to some extent languages hinder concurrency and parallelism, and that eventually we might work down to "the photon level, the physics directly." In his view, the past 60 years of software development have been about coping with the limits of human cognition, and if those limits no longer apply, neither do the solutions built around them. He pointed to current models that generate playable game worlds on the fly and imagined operating systems, device drivers, frameworks, and languages generated the same way. That sounds like science fiction, he said, but so did agents writing web applications not long ago.

He called for "more science fiction, more imaginative play." Our imagination is still anchored in works like 2001: A Space Odyssey, and our fears about AI come from HAL 9000, the Terminator, and science fiction written 40 to 100 years ago. Since those tales have partly come true, he argued, we need new horizons for what a new era of computing could look like.

44:34

The Commodore 64 era of AI

Daer asked about a different kind of limit. Bypassing libc and talking microcode to a CPU would take many more tokens. If development-time cost has collapsed, people may choose Rust to minimize runtime cost, but what about the cost of tokens spent representing reality and operating within it?

DHH said we are at the Commodore 64 stage: a "1 megahertz agent" that will be ten times faster next year and a hundred times the year after, and humans are bad at grasping exponential growth. Token efficiency and cost matter right now, and you should pay attention or "your token bill will explode," but he called that a short-term consideration. He dismissed what he called the "degrowth doomer" view that Anthropic and OpenAI will "rug-pull" users as economically illiterate. He said open-weight models are already very good, and that there has never been as much competition in a new computing field. Mobile had two players, Google and Apple; desktop had Windows and Apple. AI, he said, has "a million token providers," and any lead Anthropic or OpenAI has is measured in months, if not weeks. Prices, he predicted, will fall and quality will rise.

47:01

Ruby's token efficiency

Daer brought up an observation from a colleague of Matz that Ruby is among the most token-efficient languages. Matz explained that several months ago a colleague measured about 13 languages, as best he recalled, including Ruby, Python, JavaScript, TypeScript, Rust, Kotlin, and Go. Three stood out for both token efficiency and time efficiency: Ruby, Python, and plain JavaScript. Interestingly, he said, static typing helped neither. DHH interjected, "Told you."

Daer suggested that if there were any measure of "agent happiness," it might be that agents reach their goals quickly in these languages. Matz said that was too strong an assumption, but he believes a language designed around humans and the joy of programming is probably pleasant for AIs too.

Daer then raised a counterpoint. Chad Fowler ran a benchmark with representative tasks and let models choose the language, and Ruby was chosen in none of them. Models mostly reached for Python, JavaScript, and similar languages depending on the problem, perhaps reflecting pre-training: what they know is what they use. If models have their own internal "rails" from training, how do we steer them, and is what they default to what we want?

DHH said he doesn't think agents care. If you want them to speak Ruby, they will, and they are good at it and token-efficient, as the evaluations show. They default to Python because that's what the machine learning researchers building them work in, which he said says nothing about what they're better at. He also argued that a focus on pre-training quickly becomes myopic, and that the community fell into this trap early by asking how to help labs teach models more Ruby, assuming models needed to see lots of Ruby to write it. In his view, the principles of good software are universal, and whether a model learns them from JavaScript, Python, or Smalltalk doesn't matter.

He called the "parrot" view, that models only repeat what they've been shown, a second misconception. He described them as "incredibly creative thinkers," pointing to security, where models chain multiple attacks together so creatively that defenders need agents of their own. He said they may even be more creative than the humans steering them. His conclusion: have agents speak Ruby when you want to read code, because Ruby is the best language for humans, and let them go back to machine code for the CPU afterward, which he said is what Spinel does.

52:13

The values of Rails, and finding your tribe

Daer then asked what lies beyond Rails. Rails has been one expression of what programmers bring to technology for 20 years, but programmers can now reach much further. There is a desire to keep the values of Rails even if not necessarily the framework. He mentioned DHH starting something new with Omarchy, and Matz's MINASWAN motto ("Matz is nice, so we are nice"). He said the motto never quite sounded right to him, since you don't act a certain way just because someone else does, but he sees it as permission to value what Ruby values, and that permission filters who is drawn to the language. What's next for them as founders?

Matz said he doesn't know. He expressed deep respect for Linus Torvalds, not only for Linux but for also creating Git: one great work is a story, he said, but two is a legend. DHH, having created Rails and now Omarchy, is on his way to becoming a legend, Matz said, while he has created Ruby and asked himself what his next thing might be. He said he would think about it.

DHH spoke about the importance of finding your tribe: people who share much of your outlook but not all of it, because some friction and disagreement is needed to learn from each other. He said all hands went up when asked about being a Rubyist because the room shares a view of Ruby as a form of expression for directing machines. Many people dislike Ruby, Omarchy, or Rails, he said, and that's good. A world with one language, one framework, and one operating system might be efficient but would not be fun, because people think differently and respond to different paradigms. He pointed to static versus dynamic typing as an example: people haven't reasoned their way into those positions, so they can't be reasoned out of them; the preferences are almost presets. Matz added "Emacs," and DHH agreed, listing tabs versus spaces and Emacs versus Vim. He said such dividing lines should be celebrated and that new ones will be needed. As agents write more code, people will need new ways to connect and build camaraderie, and he said this community has a unique opportunity to do that together.

56:49

What Ruby and Rails got right

Daer asked what Ruby and Rails have gotten right over the past decades.

For DHH, it is a focus on agency: individual programmers going much further than they could with less efficient, less pleasurable tools. Ruby was a "magical unlock" for him, both a practical tool for web applications and an endless source of joy and motivation. He said the Ruby and Rails communities understood human psychology and what drives productivity better than anyone, including that beautiful, ergonomic tools matter even if code that "looks like poetry" seems frivolous.

He added a point about performance. Some performance-critical applications can benefit from being rewritten in Rust, but he said far more cannot, and that the vast majority of Rails applications could already run on a single Raspberry Pi. He said he will start all his new web applications in Ruby on Rails, enjoying a glimpse of the beautiful code agents generate, and if something becomes popular enough that rewriting it in Rust or machine code makes economic sense, he will do that, and can turn it back into Ruby later if he wants. He said you don't need to fear becoming a Rust programmer: "I would not condemn you to that fate."

Matz said Ruby's biggest contribution was teaching the importance of joy, motivation, and community in programming. Humans need motivation to do anything, whether building software or improving society, and they are far more productive when they feel joy. That was not common sense 30 years ago, he said. As long as human concerns stay the same, he believes motivation, joy, and freedom will remain important. Technologies come and go, and Ruby itself may become less important, but those values will still matter to developers and makers.

Daer summarized programmer happiness as agency and joy together, and added that for professionals it also means being paid, being recognized, and having a future in the work.

What they are most thankful for

Daer closed by asking what each was most thankful for in their roughly 20-year partnership.

DHH said he was most thankful for Matz allowing him and others in the Rails community to "finish the book he started": putting the application programmer on the same level as the language designer, so that you couldn't tell the difference.

Matz said he was grateful to DHH and the Rails community for making Ruby known to the world. Before Rails, he said, Ruby existed but almost no one knew it. Because of Rails, applications including Shopify, GitHub, and early Twitter were built on Ruby and Rails, and many startups used it to make a profit and change the world. He said this brings him great joy and self-esteem, and that thanks to Rails he has been able to work on Ruby full time.