Posted by an0malous 1 day ago
A bit of a field report from #RailsWorld: the vibe here is far from doom and gloom. Quite the contrary. Wherever our industry is headed, most of us are still employed as menders… tending to systems that customers rely on and businesses are quite happy to keep paying for.
Most of us aren’t waking up to a blank canvas and designing the architecture of the future. We’re inheriting decisions made years ago, updating old patterns, working around constraints, and keeping this shit running reliably.
I think these newer tools give us an opportunity to wonder a little more about the systems we’ve inherited. To unpack why things work the way they do. To tinker with assumptions we haven’t had the time, confidence, or permission to revisit… and share what we learn so the next person, or agent, has an easier time.
That deployment model we picked eight years ago? Worth another look. Some of our web apps probably wish they were native apps. And there are plenty of architectural decisions we’ve been living with mostly because… well, we’ve been busy living with them.
There’s plenty of understandable anxiety about what these tools mean for our work. I’m increasingly curious about what they give us permission to revisit.
Once my keynote is published, I’ll share more about a little programming-language-adjacent framework I’ve been working on for approaching exactly this kind of curiosity.
In the meantime… keep showing up. Keep wondering.
Long live Ruby. Long live Rails.
p(bloom)
There is a world of difference of having tens of millions of dollars and paying hundreds of dollars a month for AI subscriptions vs someone making 100k / year doing the same.
For the DHH's of the world that's not even something to think about, but for most people who are working (even in tech), now we're talking 2-8%+ of your income depending how much you use AI. Just to have the "luxury" of being able to experiment with it. I use air quotes on luxury because I personally find a lot of AI results to be quite bad, but then again, I'm not spending hundreds of dollars a month on the premium models.
That sure sounds like any savvy business should pivot away from Rails and Ruby in general as fast as they can, assuming they have tokens to burn. Personally, I built my career on Python, but any new thing I build is almost always in Go or Rust. Why mess with an interpreter if you don't have to?
I know some people might disagree, mainly because AI isn’t a new architecture or a new programming language in the traditional sense. But I still think it’s worth revisiting the assumptions and having the discussion.
You have to adhere to bizarre requirements, you can be taken down on a whim without possibility to appeal.
You have to pay for a developer account at least to Apple each year $100, Google one time fee $25.
Nothing like that for a web app.
To be fair, this is true of most of AFK world. Things start seeing a lot less doomy and gloomy when you're actually outside talking with other humans. Seems to mostly be online and various darker corners where they're dooming and glooming.
Is the idea that they'll switch to doing "product owner" roles overseeing agents? I don't see that employing the same number of people or paying as well as engineering used to.
To be honest I expect that that role to suit different people to those that used to be engineers.
If this feels gloomy to some people, it's because it is.
If he's hiring new people they won't be engineers or the people that used to do engineering.
They'll be people that are better suited to writing English than code.
There is no fixed pie of work that AI is taking from us. In this circumstance, increased productivity caused the company to just make more stuff, not lay off people (or avoid planned hires).
It is a real world example of https://en.wikipedia.org/wiki/Jevons_paradox
Looking it up: Planet Argon is a Ruby on Rails development agency.
It is notable that his perspective in this talk is very much from a developer-user side rather than someone who is responsible for the framework itself. That surprises me, and I suspect it is not a good omen for Rails.
For all of this embrace of agentic development, there is nothing here on how they are adapting the framework for this new agentic development reality. Agents do currently work well with Rails, but there's nothing here pushing things forward as best as I can see.
I know for my own projects I've largely moved to Elixir/Phoenix, for similar reasons to his use of Rust... I didn't want to have to learn it, but now I don't have to and I get to benefit from its strengths.
What he was saying in his talk was that his customers (people using Hey for email and calendar) never really wanted hybrid web-native apps, they want native apps (like most people prefer on mobile). His business could never afford to have a dev team that built and supported six different native apps, so they always built using hybrid web-native stuff using Turbo Native.
Now that his development team has access to agentic coding, they can build and maintain six mobile native apps. For his app, the back end part then becomes small and simple and they can reimplement it in rust to reduce server cost.
His point wasn't that rust is better than ruby, or anything like that. His point was that agentic coding allows smaller teams to do bigger things. For most people building on rails, their customers don't need native mobile apps (I know mine don't) and for them Rails is a fantastic choice for agentic coding.
Rails is so into agentic coding that they publish benchmarks of how effective different models are for building with rails:
TLDR: DHH isn't anti-rails, he is pro-agentic coding. Rails is great with agentic coding. AI doesn't mean layoffs, it means your teams can do much more than they could do before.
- A layperson can now build one a solo developer can do
- A solo dev can now build what an agency of web development can do
- An agency of web development can now build native apps similar to what large corporation can do
- Large corporation can now tackle even more ambitious projects
Which makes sense given what got automated. This is with the current tech, people still exploring the full potential, but if that turns out to be the case then I'd argue the software market will grow substantially and we are just having an adjustment period.
Have you seen the older apps built by devs? or all the other bootstrap themes?
He is just promoting Shopify's vibe coding for merchants. I bet on Shopify pivoting to vibe coded Rust soon because of "security".
He explicitly said he still loves ruby as a language and thinks Rails is well suited for a future with AI coding.
It's interesting how this stuff gets spun on social media by people who don't watch the content.
I can't but help think that he would have spent longer on it if that's what he really thought.
I don't think he believes in Rails any more.
It's clear that he was more excited about thing that are not ruby or rails and now considers rust better suited to the output of AI.
To be honest, I could see rust taking over from typescript/javascript as an output language for the web too. If no one needs to read source code any more why not use rust for everything?
That sounds like layoffs lol.
as a solo: you can build and ship more in your own time
as a startup: you can iterate and scale more with more velocity and less growing pains
as an enterprise: people with ideas but not a technical background can put their tokens where their mouth is and build their own interfaces, personal apps, ask their own questions, ship their own features without having to navigate layer 8 and play games for resources
Talking point: I think it is communication, and AI (notably information exchange in “Claudish”) is not as effective there.
Making the widget cheaper doesn't necessarily create demand either. I will not buy 10 times more toothbrushes or writing pens if their prices suddenly decreased to 1 cent.
The demand for software or features will not increase at the speed of our ability to produce them.
It’s his business decision to save on native app development costs to increase his (generous?) profit margins.
To each their own, but I think using Rails in the era of agents is probably a mistake. It has 2 big problems IMO.
(a) A ton of footguns that an agent can and will miss on occasion, and as we manually review less and less code, we will also miss it, and
(b) security on the web has become increasingly important due to hostile AI agents, and while rails has great secure conventions (see (a)), it's still easier to screw up something and not catch it until after it's deployed because there are simply less guardrails in place (dynamic types, no compile, slow tests, generally bad performance profile).
All this static vs dynamic stuff doesn’t really matter anymore. AI doesn’t care. You just need to close the feedback loop with tests, linting, a compiler, or whatever else gives it a clear signal.
Simple as that.
I have a hard time believing that, considering his hobby of racing cars and commissioning one-off hypercars. Unless it's that his business could never afford that dev team after DHH takes his salary.
That's an opinion, not a summary though. The way how DHH behaved is really awkward in the last years. See the "let's shoot down wolves" blog entry here:
https://world.hey.com/dhh/wolves-sheep-and-gypsies-ba44af6a
That DHH is into AI agents everywhere is easy to see, but if you go to rails-con, would you not expect this to be about rails as such, and people? Now it's about rust - and AI. Controlled by big corporations. Yikes - some people must be upset about having gone there to listen to DHH preaching about an agentic future.
Edit: I also watched parts of the recent youtube video about rails. I could not focus on the content because DHH's style was so strange. I've seen that style before - nothingburger talks. Look at phrases he used such as "I have retired from being a professional programmer/software engineer". This is all aimed to hype up "agentic coding is the future". Rails is dead - that video is all the proof one needs. DHH shifted gears to AI, and it is quite similar to when he first promoted rails. But now it is about AI, not rails.
Also, I hate native apps. FWIW most devs I know actively try to avoid them.
(1) https://www.uclawjournal.org/how-ai-destroys-institutions/
Most users don’t care. What they do care about is performance, and native is usually the easiest way to get there.
For your AI workflow questions, it depends. With or without AI, those decisions depend on the organisation’s direction, the team’s capabilities, and their preferences. Did your org have a single answer for the best programming language, framework, or workflow even before AI? There was never a single right answer to any of that.
You have little to no control over privacy, tracking or advertising compared to the web. That's left to the original developer and there's nothing you can do about it.
You can't do things like disable autoplaying videos. Often you can't even copy text without taking a screen shot. On a phone it's also much easier to zoom random parts of the screen in a browser compared to a native app.
There are legitimate reasons to prefer the web to native apps.
One thing the AI era has changed for me is how easily I spot Gell-Mann amnesia, of which this is an unfortunately strong example.
His politics, even putting aside their nature, are framed with deliberate misuse of facts and data; why would he be someone to listen to in any depth on any other topic?
I have a background in sociology and urban planning. It's very clear that DHH is not an expert on politics. His blog posts demonstrate a very elementary understanding of the topics he covers. He doesn't even understand statistics.
Any specific examples? I am/was out of the loop on this and had to Google "DHH politics" to know what people are talking about.
The one for me is spotting the Baader-Meinhof effect, of which this is an unfortunately strong example.
But if someone misrepresents deliberately on a topic of polarising importance, why would you spend any time listening to them on any other topic?
I would (still) listen to him if I did not know he wrote stupid wrong things on other topics in bad faith.
I had a fairly opposite reaction: Knowing what you can't be and how much less important your past work is going to be is good. If there are good reasons for more people doing less in Rails, then the creator is probably the person you want to be most level headed about that.
(They can, of course, still be wrong)
And honestly, do people really think everyone is just going to become an "energized creator"?
.·°՞( ̑ ᗜ ̑ )՞°·.
I'm on board with the idea that agents are going to write most of the code, but not checking it is just insane to me, based on some of the things I've seen committed in commercial codebases recently.
I'm always pleased when working with a dev who has Rails experience even if they've since moved stack, as often they have picked up and learned the value of these good behaviours. Perhaps it's as much a community thing as a framework thing, or combination of both.
Agentic development definitely still has room to improve, but I suspect that there is some future framework (maybe even language) designed to help minimise these types of mistakes.
Is it types? Are types the answer? Is it rust?
As time has gone on Rails has gotten better about this, but it still means that "your rails" and "my rails" are different enough that AI could easily get confused.
As you say, the other aspect is the intense dynamism which works against AI, which again prefers to have everything explicit and reasonable about from the text.
So I ended up going back to Javascript after a brief 12 year digression into Ruby. I still love Ruby but it's just not the right language for the current environment and team structures - typescript is "worse is better" in the right ways that it's a much better choice for both frontend/backend being the same and better type systems.
However Rust has one serious problem, BUILDS. It’s slow and it takes up a ton of space and memory. You will be working around this on any sizeable codebase. Using cargo check to ration your compiles, a dedicated build box, etc. Now imagine you're using it for a web application with compiled maud templates... you're potentially waiting minutes to see your changes.
If we accept that over half of the people building with rust are using agents (I'm sure this is much higher in reality), then you should also accept that there is a ton of time and resources spent on building / compiling. Optimizing this should probably be a top priority. They need someone who will be fanatical about shaving time and memory use from the build process.
Maybe there will be one day, but what are the odds that it will meaningfully move the needle for existing platforms such that manual code review is unnecessary? "Blindly trust the output" is not a feasible security posture today.
When designing systems, you want the important details to be right. Especially with authentication and authorization.
From an architecture level, you can know which classes are important to review and which ones are not.
In Software Engineering, we learned about requirements, testings, system design, UMLs, etc, and those seems to be more relevant than ever.
You can say "ride the wave", but this is more - this is helping the wave become huge. And cashing in too. Sorry, but I no longer buy any of what these guys do. To me they seem like BigBro ad-clowns.
> Agents do currently work well with Rails
According to whom? And not everyone wants to become dependent on corporate-agents sucking them dry financially. We all know the increase-in-cost will come with regards to tokens, after the get-hook addiction phase is over.
Edit: it's his conference because the actual Rails conf banned him. Sad victory I guess.
For reference, here are the definitions:
racist: a person who believes that a particular race is superior to others, or who discriminates against other races
fascism: any right-wing, authoritarian, nationalist ideology characterized by centralized, totalitarian governance, strong regimentation of the economy and society, and repression of criticism or opposition
Before that I'd have said he was on the edge, but now it's pretty clear cut.
I want to learn a couple of things once they are done:
1. Once the test suite assistance is over, how do features get built in their backends and continue to maintain the same quality. LLM test writing is a bit trickier as it often favors what Randy Coulman called tautological tests back in the day. It takes a lot of work to get them not to do this, so I am guessing folks at 37Signals will read at least this part. I can't imagine zero Rust read at all.
2. Over the years they had a few innovations in their domain design, ones that Rails made easier to do, for instance their delegated type pattern. Will Rust replicate this, and how would one know without reading it, or perhaps it does not matter? Furthermore, how do newer patterns emerge? and how does our arsenal of better abstractions keep growing?
I don't have the answers but I am glad there is a chance we can learn said answers.
I have a pretty solid idea what the 'perfect' custom app for this would look like for me at this point. I've toyed with the idea of vibe coding it, but I simply don't have the time to get it built, test it out, and refine it to the point where it'd meet the vision of what I want.
Bear isn't exactly what I want but it's close enough right now to warrant using it and paying for it. And it seems to have a decent team behind that's going to spend time continuing to build and improve it so I don't have to.
But I assume you didn't use to build anything substantial.
As of now, but we are talking in a perspective.
Business people I work with tend to have all kind of ideas in different places, I cannot count all the Trello boards they have abandoned. Users are usually lazy and don't want to fill in data properly, well yeah chatbox with llm is cool interface, but you still have to enforce structure for data so it is useful.
With AI problem is still there "garbage in, garbage out", models are not going to imagine correct data to fill in blanks, in the end if you need someones birthday, someone has to type it in.
Web app I am working on is organised only because we get engineers and quality assurance and we get paid for maintaining application. Data is structured and we can deliver insights because the application enforces structure.
There are far more requirements than AI can deliver on its own.
Also - what he is talking about was true for well over a year. It is just that a lot of day-to-day gaps between prompt and output were closed in the meantime. In a sense, Ruby on Rails/37 Signals is a late adopter.
Hey is not even a Ruby Rails App anymore. And indirectly admitting Ruby is slow considering they manage to cut 99.9% of CPU with their rewrite in Rust.
I agree it seems like the end of Ruby on Rails. I personally hope a fork will come along as a spiritual successor, because I still love building web apps this way.
Where will we be in 5 years?
Examples:
It doesn't make much sense to use a human language like Ruby and leave so much on the table when you can use a language like Rust or C to squeeze a LOT more out of correctness/types/performance.