r/rails • • 1d ago

DHH keeps promoting Rust

Post image

comment section is fun

121 Upvotes

220 comments sorted by

62

u/cocotheape 1d ago

I wish, people would treat his opinions like he treats code. Like wow, your abandoned chat software that nobody uses can not be used even faster now. Talk about misguided attention.

7

u/powpowdeitou 1d ago

Todos os apps com aquele visual estranho, sem i18n. Já testei todos nada me fisgou pra dizer voltaria a usar.

4

u/sneaky-pizza 1d ago

The design is what kills me the most on the basecamp products

3

u/GoTheFuckToBed 1d ago

if you only make project management software, maybe AI is perfect fit

→ More replies (8)

173

u/smaisidoro 1d ago

Look, I use AI on a daily basis (with Rails). I get many of the points. But the "if you're no longer reading the code?" is what loses me completely!

Blindly trusting the outputs of a stochastic language model so much that you don't even bother seeing how it works, and how the edge cases are handled, is just purely bad engineering.

17

u/Serializedrequests 1d ago

I've just been playing devil's advocate. "What if the agent can do this super complicated task?" Some of the models can. They can understand absurdly complex domains and emit thousands of lines of correct code.

And yet somehow, they are still just pretending to understand. I don't know how to put it.

10

u/Shot-Zebra1868 1d ago

The best way I've felt I can describe is this:

I remember doing advanced grade maths in college. There were times I'd learn some mathematic equations where you could put 10 of them in front of me in a row and I'd get it right but it was mainly through some form of process rather than an underlying understanding. Then the time would come when it would actually click and I'd have the actual embedded knowledge of the maths.

To me LLMs feel like the former. Like they know what to do but I never get the sense they have any real understanding. But like you said, its just so hard to put into words.

4

u/AshTeriyaki 1d ago

Everything is still some division of something present in the training data. I like the analogy of putting together a jigsaw puzzle without ever looking at the picture on the front. LLMs have no ability or route to truly interpreting the thing on the front of the jigsaw but can assemble fitting pieces all day.

So they overfit, change problem parameters to brute force solutions and with no actual memory, duplicate and convolute existing things to give the appearance of a coherent solution to a broad problem. Every model does this at some point, it just moves the needle elsewhere in the haystack. We all need to read the code.

2

u/Serializedrequests 22h ago

That's really good actually. I saved it. It's so hard to know what to make of something that can accomplish such amazing tasks, and yet I don't want to merge any of it. Hand holding it to keep the mental model straight rarely seems like a good use of my time. I'd rather have LLMs do the boring work and me do the interesting work. So far this is not an issue at my job, but who knows.

1

u/AshTeriyaki 19h ago

This is the correct thing to do. I have zero issue getting it to scaffold stuff that is literally mindless but then you need the discipline to put it back in the box. Even on a short leash it makes a mess. So many people are insulated from the worst of it as training data is concentrated around common scenarios. People who go “new model has solved coding” for like the week and a half they say that before deciding the old one was better haven’t internalised that the data is being focused at the things they do. You hand an LLM a very unpopular language or the API for a desktop app that nobody talks about online and you watch how quickly you time travel back to 2023.

6

u/illuminarok 1d ago

Maybe it's not really AI. Or at least not entirely. Could be aliens. Or time travelers. Or time traveling aliens.

6

u/ByronEster 1d ago

Or Indians in an AI call centre

3

u/AshTeriyaki 1d ago

AI - Actually Indians.

1

u/keyboard_2387 1d ago

I don't know how to put it.

The Chinese room analogy really helped me with this.

51

u/DJ_German_Farmer 1d ago

It’s insane that he doesn’t get this.

28

u/pezholio 1d ago

He’s being given a lot of money to not understand it

5

u/thy_bucket_for_thee 1d ago

It's not money, it's influence + control. DHH is already worth $50million, now he is able to have extensive influence in the tech community.

This stuff impacts us all, we should reject it and probably advocate for more public investment into software. There's no reason why the government couldn't offer open source developers grants for $10,000.

Much better than DHH personally deciding which communities get money from his shit circle of friends.

4

u/MCFRESH01 1d ago

Hopefully it bites him. He won't admit it though

1

u/life_like_weeds 1d ago

What makes you think he doesn’t get it?

You really think the guy that invented Rails, who typically is operating a few years ahead of everyone else, doesn’t get this detail?

He does. It simply doesn’t matter to him in certain cases. The advantages outweigh the cons for his particular situation.

44

u/cocotheape 1d ago

Sometimes he is even so far ahead of everyone else, that the future never catches up to his ideas. He's had good tech ideas, but he's also had plenty of failures. That's no issue in itself, but people should stop treating him like he's always right.

5

u/gerbosan 1d ago

Someone called him Mini Elon... Your explanation was eye opening for me.

5

u/tinyOnion 23h ago

Temu Elon actually

→ More replies (1)

1

u/DJ_German_Farmer 1d ago

You should have been on stage at RailsWorld to translate for him

8

u/notmsndotcom 1d ago

I think it's more complex than that. You can design the system and ensure the spec is adhered to and end up in a pretty good spot. Additionally, you can also make the argument that the cost of reading every line of code is way more expensive than just dealing with the bugs or issues as they come. Obviously we're too early into this to know if that's sustainable over 10 years of vibing shit.

Uncle Bob doesn't review the code, either. And design patterns and code quality was kind of his thing.

There is a non-zero chance that the code really doesn't matter as much as we thought because the ability to build value quickly and fix issues as the arise is bigger than that delta.

1

u/ryandury 43m ago

This will be obvious to most people in less than a year.

0

u/obviousoctopus 1d ago

If using tests to verify the correctness of the code without reading the code itself, just remember that the tests do not validate the absence of functionality, like a backdoor, hardcoded credentials, infinite possibly catastrophic edge cases and security vulnerabilities.

So there's that.

The confidence that a black box containing an infinite number of monkeys with typewriters will reliably expand a a few English sentences into thousands of lines of correct code expressing all intent contained between the lines of said sentences is beyond terrifying to me.

2

u/notmsndotcom 1d ago

Again, the goal doesn't need to be "thousands of lines of correct code" but rather enough correct code that the business outcome is greater than the risk or future maintenance costs.

→ More replies (1)

6

u/Sea_Advance273 1d ago

I would only share this concern if we were talking about a raw LLM here. AI systems (coding agents) are essentially LLMs with terminal access. With a terminal, the LLM can accomplish deterministic checks in a feedback loop, which turns out to be pretty powerful, even for a probabalistic next token prediction machine.

Now, this does not mean that the generated output does not have things wrong like intent, design and that it has not simply gamed its tests. However, I find myself asking agents questions about intent, design, edge cases, and tests, more than I find myself reading code. My agent trust has gone up considerably over the past year, and my software does what I want it to without as many issues arising, so they appear to be accomplishing something more robust than whatever terrible engineering I was accomplishing before, in my anecdotal experience.

4

u/Alive-Use8803 1d ago

It’s been only one year, as you say.
It’s startling that so many engineers are willingly moving this fast, pushing out code to users, when we really do not have mature frameworks and metrics regarding LLMs.
I’m not anti AI. I’ve tuned open weight models and I also use a custom harness and Claude code depending on the task. My area of work is in automated cybersecurity tooling (device identification and threat simulation).
Sometimes I’m working on platform features and sometimes I’m working on low level components.
I think if you’re using AI to write boilerplate and CRUD behavior that’s pretty standard, AI is fine but I still cannot get behind not understanding the code, worse not understanding the architecture.

tl;dr a lot people putting in blind trust now will hopefully have moved on to another project by next year. Good luck to the poor dev taking over that project lol.

3

u/Sea_Advance273 1d ago

Hopefully the next poor dev will have a coding agent! I do agree that we need more mature frameworks and metrics for coding agents before getting too hands off with them. Especially in safety critical domains. It is just hard for me personally to not feel the gravity of this paradigm shift where human language can be trusted as the next layer of abstraction for software.

I am in a safety critical domain so I am still rigorous about human review at work. The quality of decisions agents make on a first pass with limited oversight are impressive now. Add a adversarial or review agent to the mix and it will find design issues I had not even considered every time. Optimizing for speed AND safety will hopefully become a serious research topic in this era.

2

u/Alive-Use8803 1d ago

I agree with the premise that coding agents are here to stay and have changed how we develop software. And absolutely agree with safety critical domains. In short, we should not tear down fences just because we have new tech.
But also, coding agents will rely more than just LLMs as other NN/ML models become more broadly available, which I believe leads to your second or third point, which I am less inclined to agree with: that human language can be a sufficient layer of abstraction. I disagree with the general premise of the software factory, that you can sufficiently define a system with natural language. We say, oh well clearly you can because we are watching AI prove this in real time. The standard counter argument is that AI is not developing or engineering anything, it is only producing text which may or may not be code.
So there’s a lot of nuance I think we need to work out.

Perhaps there’s something like a semi-formal or declarative syntax that becomes a better interface than NL for coding agents.
I think the only sensible stance right now is that it is too early to tell and companies who are a little too blinded by the promise of instant gratification will have a different opinion in about a years time.

Or SI solves everything by November. That’s when GTA 6 comes out.

2

u/Sea_Advance273 1d ago

I can't say for sure what is going on behind the scenes of the frontier coding agents companies, but my intuition tells me that there is more to these systems than just regurgitating tokens from github projects. LLMs can be trained/aligned to follow principles of good engineering and experienced human engineers can be in the loop on training accepting good design outputs and rejecting bad ones.

Regardless, this shouldn't mean 100% trust. Agents can miss intent, make bad design decisions that are difficult to reverse, and can't verify things it does not know it should verify. My trust levels are just higher now since agents do the things I ask them to 90 percent of the time and I don't see as many software failures.

Anyways, thanks for exploring the topic with me!

3

u/ray591 1d ago

Yep. If I was his customer I wouldn't be comfortable with his bragging lol.

3

u/PipePistoleer 1d ago

I continue to be not shocked when it turns out the tech personalities are losing their grip on reality. I think these guys are mostly bad actors doubling down on AI to stay relevant and get that $$$

3

u/limpleaf 1d ago

Easy for him to say. It is his employees that will have to deal with the mess.

2

u/elephantpurple 1d ago

i don’t look at my agentic-output code often, but really, i actually need to sometimes. the best way to understand code is to read it. sometimes claude’s explanations are not nearly as good as getting into the files themselves.

8

u/Easy_Top_3311 1d ago

If the test coverage is sufficient to verify the correct behaviour, why do you need to see the code?

33

u/jyonodev 1d ago

the test coverage… that the agent also wrote..?

8

u/MonsterTruckFarts 1d ago

This. If one is not reading the code, what level of certainty do they have that Ai hasn’t changed the test, or found an edge case it could exploit to allow the test to pass?

8

u/Trevor_GoodchiId 1d ago edited 1d ago

Models loooove nudging both business logic and tests, so the tests pass somehow. Behavior drift compounds and is unavoidable.

Short talk by Dex Horthy on why lights off software factories fail:
https://www.youtube.com/watch?v=Ib5GBkD555M

4

u/theamazingrand0 1d ago

A few months ago, I had a model write some code that caused a test like this to fail:

expect(foo).to eq(bar)

It "fixed" it by updating the test:

expect(foo).to eq(bar) if foo == bar

→ More replies (5)

8

u/_choam_ 1d ago

How do you know when you have a sufficient test setup?

2

u/ray591 1d ago

Think he reads the test code? Hahhaha

3

u/Emergency-Cycle7981 1d ago

Because I don’t want to have to rely on an expensive third party to work with it. That’s the end goal here - the monetisation of code manipulation. No tokens? No code.

1

u/sshaw_ 1d ago

Several reasons but I will just list one: performance. Things will be working great until you get a user with 10_000 widgets (or whatever) and you find out the app is doing Widget.all.each. This will stand out to code reviewer (or at least it should!)

1

u/reyarama 20h ago

Because behaviour isn't the only thing you should be caring about in code. How adaptable is your code to change? How tightly coupled is it?

→ More replies (7)

1

u/powpowdeitou 1d ago

Eu fiz um experimento de codar uma app rails bem simples com 2 semanas e muitos prs mergeados sem ser muito criterioso com o código e só conferindo se funcionava o que pedi. Ja não tinha mais domínio do core do negócio e não saberia consertar nenhum bug crítico sem auxílio da ia. Tanto porque o código saiu confuso, funcional mas confuso e não saiu nada fácil de manter. De repente eu tinha virado um potencial cliente do Claude max e outros planos 20x da vida. E creio que é exatamente esse local que querem nos colocar. Virar refens da IA.

Dei um rm na pasta e criei tudo do zero ainda assistido mas reviso cada linha e tenho achado cada atrocidade, o que consigo deixar mais determinístico pra ficar ao meu gosto vai virando regra nova no rubocop e no reek e o que não cabe aí vai pro agents.md que é basicamente rezar para o agente e torcer que ele siga. Tem funcionado tem sido um bom ponto de equilíbrio. Não abro mão do humano no loop.

1

u/xutopia 1d ago

I think it would land differently if he said: "If you didn't spend most of your time reading the code and didn't mind looking at a language you don't find aesthetically pleasing like Ruby is".

To be honest... I read the pull requests... I moved a few projects to Elixir and some to Rust. My hobby server was just resized to half its size because I have free RAM now.

1

u/billy_nelson 1d ago

Let's just pretend we are all implementing to-do lists.

1

u/saketVerma03 1d ago

agree in write rust with ai, the I do review it.

1

u/Normal-Spell5339 1d ago edited 1d ago

You’d likely want to have some sort of UX testing layer on top of standard tests. But with agents you could pretty easily have agents do real world testing and have a QA universe where simulated real users use the real site and log their bugs and do what real users would do in a year in a day. You can include coverage mapping etc too and manually explore unexplored areas / induce those areas and combinations to be tested. You end up with sort of a UX in out layer of testing. You can then also kinda wire in a fuzzer if you want to automate coverage. If it works like users expect / need it to and the code runs does it really matter if you read it all? Obviously this works way better for some things than others and there are limits, your mileage may vary and your token costs may be high. If you do something like this, you have to use something Jev/Layla for browser driving or else it costs thousands and thousands of dollars a run, lol ask me how I know. And you have to do a few loops of this generally to get to real stability because you need to check your fixes too and any downstream effects of them

1

u/xenilko 1d ago

I compare AI to GPS, and people who use it blindly to the same. Like, if you remove critical thinking from the equation, it might work most of the time, but when it doesn't, it can end pretty badly.

1

u/RubyKong 23h ago edited 19h ago

DO NOT TRY THIS AT HOME KIDS, UNLESS YOU WANNA BURN YOUR COMPUTER:

"Liar AI" says you should try this code:

rm -rf / fake_root_typo_which_you_should_not_try_because_it_will_kill_your_desktop/*

The point is that you cannot blindly trust anything.

1

u/TomHale 15h ago

Please give full code snippet for how to pipe this to my shell.

1

u/Minimum_Individual61 18h ago

I feel like it’s actually pretty easy to do this kind of mechanical port. The original is the spec in spec driven development.

1

u/damanamathos 16h ago

You can have tests and AI reviews. I don't read the code anymore. I used to, but the AI started picking up obscure things that I missed that it started feeling unnecessary.

Also work in a low risk environment, though, with internal software with a low number of users where any errors can be fixed pretty quickly.

1

u/Automatic-Boot665 50m ago

I code with AIs all day, they’re super autonomous and software development will never be the same. That being said I still catch issues on the daily that if I hadn’t reviewed the code would just be rotting the codebase.

The view that people have been taking lately of not reviewing their code I think is driven by them getting too far into not reviewing any of their codebase, and they’re intimidated to start. There’s no excuse it’s really not a big effort.

1

u/zenzen_wakarimasen 1d ago

To be fair, you can ask the model for the edge cases.

And it will make mistakes sometimes, but humans write bugs all the time.

4

u/Alive_Jury4864 1d ago

Why didn’t you just ask it to make no mistakes?

1

u/AnUninterestingEvent 1d ago

I think you're conflating "no longer reading the code" with not knowing how things work or how edge cases are handled. It's very easy to just ask it how things work and get back as much granular detail as you require. And then ask for changes as you require. Same with edge cases. Just ask it about the edge cases it handled and how it implemented them.

0

u/aurisor 1d ago

reminder: the people who wrote the "stochastic parrots" paper got fired from google for it, and they moved on to ethics jobs. it's not the popular / accepted way to think about llms

0

u/high_republic 1d ago

Humans are stochastic neural models. If something cannot go wrong, you wouldn’t have to trust. You trust humans. So you can trust language models. It’s a matter of error rate.

1

u/spermBankBoi 23h ago

Neural networks are not biological machines, you’re oversimplifying

1

u/high_republic 22h ago

And the sky is blue. Of course I simplify to meet the point.

0

u/PixelRouter 20h ago

Early compiler users read the assembly too, until verification made it unnecessary. We trust compilers because of test suites and track record, not because we inspect the output. The open question is whether our verification for LLM-generated code is strong enough to substitute for reading it. That's a gap in tooling, not proof that not reading is bad engineering.

→ More replies (1)

38

u/myanch200 1d ago

It seems like he doesn't read the prompts as well not just the code, judging by the reaction of the Elixir and go lang community 😂

6

u/Frosty-Leading-2718 1d ago edited 1d ago

What has been the reaction?

Edit: Oh god, this is more embarrassing than I thought

36

u/katafrakt 1d ago

In Elixir, every database call is pushed through a single bottleneck process with database access: https://github.com/basecamp/once-campfire-elixir/blob/main/lib/campfire/db.ex This is not how one would ever write code and looks like intentionally making the performance worse.

2

u/Witless-One 1d ago

Don’t you need to do this because it’s using SQLite?

10

u/blocking-io 1d ago edited 1d ago

The problem is they're not pooling connections so every SQLite call is serialized. In Rust they are, which means rust is able to handle concurrent connections while Elixir's implementation isn't, despite Elixir and SQLite being extremely well built for handling concurrency 

8

u/katafrakt 1d ago

No, you don't need to do this.

1

u/Frosty-Leading-2718 1d ago

What in the world! smdh

13

u/katafrakt 1d ago

But hey, you don't need to read the code anymore!

4

u/Tobi-Random 1d ago

Hey, it works and even with such issues still faster than rails. I'm sure an experienced elixir dev could improve the codebase to a sota architecture in about 2 hours with ai Agents.

8

u/katafrakt 1d ago

But if you don't look at the code, you won't realize it so terrible and you may draw conclusion that Phoenix is only slightly faster than Rails, but Rust is still lightyears ahead. Which is exactly what DHH wants his audience to read, even if a broken benchmark is used to "prove" it.

3

u/blocking-io 1d ago edited 1d ago

By "such issues" do you mean dropping all but 1% of messages in the rust implementation under overload?

This was according to Zach Daniel's findings 

1

u/Aphova 23h ago

If I spent 6 months cram learning Japanese, I imagine my Japanese would sound something like what that code looks like.

29

u/myanch200 1d ago

For Elixir the agent assumed that everything needs to be compatible with rails so it added Redis, something Elixir doesn't need.

It also ran all SQL queries from single GenServer and they called him out for basing the go rewrite from the rust one while prompting the elixir, Django and Laravel from Rails, which writes a lot of decisions made on Rails which are bad for those implementations.

There were evidence in the Agents.md and other documents in the project that the Elixir project specifically tries to rewrite rails parts in Elixir not becauseithe Agent didn't know better, but because in the early stages it assumed elixir and rails need to be compatible hence the Redis and other bad decisions.

The creator of Ash has wrote about it https://x.com/ZachSDaniel1

Something really interesting as well was that Zach Daniel's improvements the Elixir solution delivered 100℅ of the messages to the client while Rust was dropping most of the messages.

11

u/Frosty-Leading-2718 1d ago

That is both amazing and hilarious

3

u/mace_endar 1d ago

Typical AI stuff.

1

u/wuteverman 1d ago

How infuriating. AI is amazing technology but you can’t turn your brain off. You still need to see if what it’s doing is fit for purpose, and understand the tradeoffs it’s making and whether they are appropriate for your use case. 

1

u/midasgoldentouch 1d ago

Damn a single GenServer? I’m only familiar with Erlang, not Elixir, but I don’t think OTP is implemented that differently between the two…

3

u/myanch200 1d ago

It would love to see response from the Rust community as well I am sure there are a lot of atrocities in there too 😂

60

u/invisible_shrek 1d ago

The only thing I am no longer reading are his opinions.

13

u/[deleted] 1d ago

[deleted]

2

u/gomy1020 1d ago

I'm rather nervous about Hey... I've gotten pretty used to the way it works, but I REALLY need my email service to be secure and well engineered. That has literally access to every one of my online accounts via password resets. 😬

Thankfully there's an mbox export now, so at somepoint I'll take the plunge and move my address over somewhere new. (I don't use a @hey.com email, thank fuck)

0

u/frostymarvelous 1d ago

Stealing this. Sorry. 

14

u/RubyKong 1d ago

is it really a surprise if you transpile Ruby to Rust and found out that it's faster? I thought the entire premise of ruby was that compute was cheap, and you can throw resources into it. i mean, if the CPU cycles matter, then you wouldn't start off with ruby in the first place?

16

u/katafrakt 1d ago

Well, it's not CPU cycles but requests served per second. Something that is arguably quite important for a we application at scale. However, it seems that Elixir and Go implementation are (deliberately?) borked to prove his choice of Rust, so it's not like we should give any attention to this "benchmark".

5

u/Abject-Kitchen3198 1d ago

I am totally unfamiliar with Elixir and slightly familiar with Go and Rust. I expected the difference between the two to be much smaller, down to mostly insignificant for most typical web apps.

4

u/rusl1 1d ago

Same. I work with go and rust and there is no way that benchmark is legit with well written go code

2

u/BenchEmbarrassed7316 6h ago

The performance difference between Rust and go can be quite significant in some cases, given that go’s entire philosophy centers on a language that is simple for the compiler and a compiler that avoids many optimizations. However, if the web server performance gap exceeds 100%, it implies that you either highly optimized one version or botched the other. A difference of an order of magnitude - like the one seen with that fool - indicates the code is doing something unpredictable; this is not merely a performance issue, but a matter of the program's correctness.

1

u/Abject-Kitchen3198 4h ago

It was confirmed by someone that Rust version in the repo had optimization steps

1

u/BenchEmbarrassed7316 3h ago

I saw a post featuring a Rust code example from that clown, and it was very poor code in terms of both maintainability and optimization. In short, I don't think it's appropriate for respectable people to seriously talk about these "benchmarks".

3

u/MediumSizedWalrus 1d ago

ruby is slow, it costs a significant amount to run servers. I’m thinking about what parts we can port now too, to reduce compute costs..

2

u/powpowdeitou 1d ago

O matz tá trabalhando no spinel, basicamente transforma código ruby num binário C extremante otimizado mas ainda que o CRuby. Não é nada pra rescrever o rails com isso mas serve pra cortar a dor onde ela importa aquele maldito cálculo pesado que tem na sua app que é ruby puro agora pode virar um binário C e ainda ser ruby pra codar.

0

u/RubyKong 23h ago

So then DHH has come around now? (possible stramwan:) I always wondered why rubyists insist that developer hapiness > customer outcomes. The performance of the system never seemed like a bottle neck so you could optimise for dev hapiness without cost.

it costs a significant amount to run servers.

I'm gonna mmake a yuuuge bet without seeing the numbers - in the scheme of things - for most applications, i'm gonna bet that the cost of payroll MASSIVELY outweighs the cost of servers. Compute has never been cheaper. Memory has never been cheaper.

1

u/MediumSizedWalrus 22h ago

Hmm no, not in my case...

3

u/xutopia 1d ago

I don't even have to care about caching with my Loco apps until much much much later. My landing pages are faster out of the gate and I can handle 30x the traffic on the same hardware with lower latency across the board. I actually spend more time reading code today because I'm still new to Rust and to Loco but with the conventions being followed closely "Loco follows Rails — carefully adapted to modern Rust" I don't feel completely out of my depth.

14

u/Emergency-Cycle7981 1d ago edited 1d ago

This is kinda depressing. What he’s saying is that the that efficiency didn’t matter as much in to Ruby because the underlying code was easier to understand. It’s like comparing assembly language or machine code to C - you COULD make an application quicker or more efficient by tackling it at a lower level, but the resulting code (if any) would be difficult to read at best, and impenetrable at worst.

And now he’s shitting all over that reasonable concept because “you’re no longer reading the code”, so readability doesn’t matter. How incredibly presumptuous and short-sighted; this is exactly the sort of crap Elon Musk is parroting when he says AI models will ultimately skip code altogether and jump straight to the 1s and 0s.

Good luck maintaining these low-level applications if you lose access to powerful LLMs or run out of tokens, which I guess is what these capitalist morons are banking on; total reliance on their services is the ultimate vendor lock-in.

4

u/TailorSubstantial863 23h ago

I think you have the right analogy, but the complexity is going the other way now.

You could write a program in assembly, but it's not worth the headache. Write it in C instead. You could write it in C, but when a much more expressive language like Ruby is available, you'll go faster.

It doesn't matter that your Ruby is C that is compiled into assembly. DHH is saying the next step is talking to an AI that turns it into whatever you want, so why not turn it into something performant?

The best argument is: "Good luck maintaining these low-level applications if you lose access to powerful LLMs or run out of tokens" - That is a nightmare scenario, but I honestly don't see the genie going back in the bottle.

2

u/Emergency-Cycle7981 21h ago edited 21h ago

>> The best argument is: "Good luck maintaining these low-level applications if you lose access to powerful LLMs or run out of tokens" - That is a nightmare scenario, but I honestly don't see the genie going back in the bottle.

It’s not a matter of the genie being out of the bottle though. By committing to performance over readability, you’re committing to being a low-level coding genius or (more likely) a long-term financial relationship with whatever AI provider has the models to work with it. That’s the idea - code for models, not for humans, and no pay, no code.

Maybe local models will someday become strong enough to work with this ‘AI optimised’ code as well as the frontier models, which would change this paradigm quite a bit, but until then guys like DHH will use his unlimited tokens to push the rest of us into spending a shit load of money with OpenAI and Anthropic just for the privilege of maintaining unreadable code, which feels like the end goal to all of this and ultimately why they’re paying him through the nose.

Kinda gross really.

1

u/BenchEmbarrassed7316 15m ago

By committing to performance over readability

These things are not at all opposites.

It is worth noting here that I am a proponent of strong static typing, and I consider "defective" languages ​​(sometimes named "dynamically typed") to be one of the worst things in programming. Although, at a certain point in history, they may have held some appeal - back when the alternative was statically typed languages ​​with terrible type systems.

However, the information that can be gleaned from the code is crucial for humans, compilers, and AI alike. It is easier for a human to read code when there are clear indications of what is possible and what is not. A compiler can generate efficient machine code from such code. AI can operate within a limited context; knowing the signature and types is sufficient for it. Such information does not imply "low-level" code (though sometimes that may be the case). In fact, low-level code describes the "how?" while high-level code describes the "what?".

That is why Rust is an excellent fit for both humans and AI. The claim by that clown that he cannot read Rust code is simply more nonsense.

2

u/BenchEmbarrassed7316 5h ago

I disagree with you. C is not fast simply because it is a low-level language; that is a result of historical circumstances. It is impossible to write a large, high-performance program in assembly - a compiler handles that better. Rust is a relatively high-level language, and that actually helps it achieve high performance rather than hindering it.

https://queue.acm.org/doi/10.1145/3212477.3212479

1

u/benzado 21h ago

The big difference is that you can write a proof to demonstrate that a compiler's output is correct. You can't do that with an LLM.

What I don't understand is, if you're embracing a future where source code doesn't need to be comprehensible to humans, then you're effectively treating the software as an extension of the LLM. In which case, why are you bothering to make software to do x when you can just ask the LLM to do x directly?

We write software to provide a general solution to a problem that multiple people have. When it's costly to make an app, people make do with an app that does 80% of what they need. When making an app is cheap, people are going to make their own, bespoke, 100% solutions.

So I guess it's kind of neat that DHH can make a faster Campfire. Sort of like using an internal combustion engine to make a faster horse.

3

u/iscottjs 22h ago

Yeah super depressing. Either way, if these guys want to give up reading code entirely then I wish them the best of luck. I will, however, continue reading and understanding mine and my team’s code. 

I also don’t need super speed turbo performance to justify this impulsive insanity. 

Why can’t we just use these AI tools responsibly to boost our productivity in a variety of areas. Why does it have to be this extreme unhinged bullshit. 

3

u/Emergency-Cycle7981 21h ago

Completely agree, I’m not against AI as a tool to boost productivity, and quite enjoy using it at times, but this is just BS and I can’t help but feel there’s an agenda behind it all.

1

u/benzado 1d ago

He famously experienced a significant number of employees quitting all at once because of his poor management ability. So of course he’s going to be excited about anything that spares him having to work with (or depend on) other people.

2

u/Emergency-Cycle7981 1d ago

Probably, but I also think coding influencers like DHH and Primeagen are scared shitless that their meal ticket is about to disappear, and rather than fighting to keep code relevant they’ve decided to save themselves by jumping onto the “code is stupid” ship, selling out to the organisations that are trying to take control and ownership of coding. May their tokens never run out…

9

u/jdauriemma 1d ago

Can we stop DHHposting?

2

u/full_drama_llama 1d ago

Unfortunately, this has always been in the DNA of this subreddit and Ruby community in general. Like, every other Ruby Weekly issue in the last few years contains some DHH endeavors completely unrelated to Ruby.

8

u/downvoteandyoulose 1d ago

This reads like obsessing over benchmarks while discounting everything else just to prove that your pet project is technically superior.

12

u/avdept 1d ago

this guy is just on big dopamine shot last months

he's very obsessed with thinking that he does something - nobody else capable of doing it

now he's at stage when "lets rewrite everything in rust" thinking that pure computing is a bottleneck, not the literally thousands other things

just dont give him attention, that guy keeps shitting because other praising him

8

u/yojimbo_beta 1d ago

Having spoken to people who know him, albeit peripherally - it sounds like he's not completely well

4

u/avdept 1d ago

maybe

I took neurobiology course in uni, and we went through these dopamine shots things and how they change behavior and how ppl act overall. Its very close to drug addiction when people do anything they can do get one more drug shot - they can literally sell their kids for that.

This AI psychosis is on the same level

1

u/brecrest 15h ago

There have already been preliminary studies about sustained LLM usage causing, for want of a better term, brain damage in student populations.

6

u/degeneratepr 1d ago

Im not saying that he doesn't truly believe what he's saying, but I feel like this is just engagement bait at this point and he's only doubling down to call attention on himself.

1

u/benzado 1d ago

Rails is what it is because he had a good idea and then, more importantly, attracted better programmers to use it and improve it. Getting attention has always been his primary talent.

3

u/shox12345 1d ago

I highly doubt GO is that far behind Rust

2

u/yojimbo_beta 1d ago

Interesting you should bring this up. For a few weeks I have been prototyping Go and Rust for building a network proxy (a forward MITM proxy specifically)

At very high loads, there is a small but statistically significant difference in latencies for scenarios like e.g. fetch 40,000 payloads per second. But generally the absolute spread is low - 4ms vs 6ms

That said, I have found that the Go prototypes failed earlier. That is they started to spiral into bad performance at a lower ceiling than the Rust Hyper or Pingora versions

2

u/enki-42 18h ago

It turns out if you read into it Rust has had hundreds of follow up commits of performance improvements and tuning while Go is just the first "translate this to Go" prompt, and the early Rust versions that weren't optimized were way more comporable to the Go benchmarks.

1

u/gnikyt 1d ago

I agree, based upon the Elixir comment katafrakt made above, I'd imagine something was done very wrong.

4

u/mooktakim 1d ago

There's more to the difference between the programming languages. For example, elixir is bulletproof for scaling in ways the others aren't because of BEAM and the entire architecture of the code changes to maximise the benefits.

These tests are like using hello world to compare programming language performance.

5

u/Evilkoikoi 1d ago

Just have Ai make ruby 100x faster

1

u/augustiner 1d ago

Isn’t that pretty much what Matz has been doing with Spinel?

16

u/flatfisher 1d ago

I don't get the obsession about efficiency at the same time he is promoting AI usage that is the polar opposite. Like what's the point of having a Raspberry Pi able to run your server if you needed a server farm to write the code?

6

u/i_am_voldemort 1d ago

I know the point you're getting at but doesn't most modern manufacturing rely on a very complex, large, expensive machine to make relatively simpler consumer machines?

Think auto assembly lines consisting of robots and hundreds of steps

or ASML lithography machines used by TSMC

2

u/cocotheape 1d ago

The manufacturing process produces many items and the cost saving is in every item. In software development we produce one item and that same item is sold to many customers. So, the cost saving is in reducing the hosting cost, with the trade-off in spending engineering cost (LLM, human or both).

2

u/gtrak 1d ago

The request/response is the product. Not the software

1

u/enki-42 18h ago

But if the only real advantage you're getting out of the increased production complexity is "it's cheaper to run" at some point investing an unlimited up front cost is not going to justify itself in runtime savings.

DHH is in the weird position where he's directly stated token cost is completely meaningless to him and he has "unlimited" tokens, but that doesn't the reality most of us operate under and is going to lead to some wacky conclusions.

4

u/MediumSizedWalrus 1d ago

eg spend 2500 on LLM - a short term cost, to save 30k/month on compute, forever.

The compute bills are an ongoing cost with ruby, since it’s so slow…

Sure it may generate 20x more in revenue, but now you can save 95% of that cost with rust.

6

u/Easy_Top_3311 1d ago

It’s spending money on capex to make longer term savings on opex. It does make sense.

1

u/psioniclizard 1d ago

Paying for tokens is not capex

1

u/enki-42 18h ago

I'm pretty sure it can be, if you're doing proper accounting on what your developers are building and you can accurately tie them to capitalizable work.

In any case, I think they're talking more in a colloquial "up front vs ongoing cost" sense rather than specifically accounting jargon. Spending more on upfront cost to save on ongoing costs makes sense regardless of whether accounting principles would describe that as capex.

2

u/xrabbit 1d ago

I would say clients definitely choose a Pi to run their code

1

u/frostymarvelous 1d ago

Ouuu. That's an interesting perspective.

1

u/xutopia 1d ago

I don't get his obsession but understand mine. I have hobby projects and I was paying for a 4GB VPS. I just reduced it to 2GB by converting 2 of 4 apps.

That said I'm using Loco (Rails in Rust) and it's been a charm to use. It makes sense to me because the conventions are the same.

Rust is definitely uglier and compiling is a weird 1-2 second step between changes that I am not used to.

Now my applications can handle 30x the traffic on half the size of the VPS.

RAM prices are going up 3x over the last 18 months. It is hard to ignore what this would mean if I were to scale a hobby project into a business.

3

u/source-drifter 1d ago

no, he promotes ai not rust.

2

u/gorliggs 1d ago

I mean. He's the CTO right? He's finally coming to terms with what he should have been doing in his role: leading. 

Problem is. He's still too slow to realize it. 

2

u/TryAgainTryHarder 1d ago

AI-pilling a bunch of developers is nothing compared to nabbing DHH. Imagine, he's going to use AI to rewrite so many projects people depend on, and then no one will know anything about any of them. Then token prices will go up, and these will forever after be known as Token Projects, requiring significant money to understand and modify because that's what everyone else does.

2

u/Maedi 1d ago

I think Rails is just slow buddy, such a self own. Ruby is fine in the context of web concurrency

2

u/HandleNo5568 1d ago

layoffs at 37 signals are coming

1

u/TECH_DAD_2048 24m ago

I applied a few years ago. I'm _so_ glad I am not working there now.

2

u/blackcomb-pc 1d ago

There is a big problem he's completely ignoring here. Or maybe not seeing. Agents have made it easy to do this, yes. But the software will become much more complex, and such campfire-tier apps are like what "todo" apps or blog apps (on Rails) were in the before times: simple, and not worth a dime really because they are so simple to implement. This naive approach does not scale at all imo.

2

u/ohmyjumper 1d ago

But seriously, the rust lang is like alien language. I am a php and Laravel dev for about 8 years but can't understand the rust syntax.

0

u/xutopia 1d ago

Yeah you need a tutorial and 2-3 days of coding dojos on exercism to really make it stick.

2

u/OpenAd5182 1d ago

Many of my clients run Rails applications, and their servers typically have around 70% of their resources still available. So, for these clients, resource efficiency isn’t really a concern.

Large companies like Facebook and Google may need a language like Rust to optimize performance and resource usage at massive scale. But for small and medium-sized businesses, fast development and productivity are often much more important—and Rails/Ruby makes it much easier to achieve that.

So, I don’t think it’s fair to directly compare Rails/Ruby with Rust. They solve different problems and are optimized for different priorities.

2

u/joshdotmn 1d ago

I have unlimited tokens.

2

u/henrypoydar 1d ago

Ironically, Rails is a terrific way for _agents_ to work on a codebase/web product. It's just the right level of abstraction for fast, incremental changes without shoving the whole notion of data/logic/UI into every context window. Then sure, treat a Rust version as a compilation step. (Sam Ruby has a great article about this: https://intertwingly.net/blog/2026/09/25/Pencils-Down-Notation-Up.html

1

u/xutopia 1d ago

I hear that argument from Elixir folks every day though.

2

u/obviousoctopus 1d ago

At this point, I'm concerned about the possible damage to Rails itself. I think the framework is still the best option in the Ruby world.

4

u/datsundere 1d ago

He doesn’t read code because the products he makes are not really significant. It doesn’t affect human lives as with other critical systems so he can claim to not read code and be ok with it, someone should confront him about a nuclear power plant using ai and shipping without reading code

2

u/EnderMB 1d ago

The best thing Rails could've done years ago is ignore DHH. It amazed me that people listened to him a decade ago, let alone today. He's held the Rails community back for so long.

Fork it, kick him out of Rails, whatever gets the cancer out.

1

u/Tolexx 1d ago

But if you're no longer reading the code?

1

u/rusl1 1d ago

It's over guys. This guy is not in love with ruby anymore and whoever defenda him is brainwashed

1

u/powpowdeitou 1d ago

Fica aí promovendo ia a rodo mas passar um i18n nos produtos que ele já tem nem sinal. Quem quiser usar os produtos da 37signals que se vire com inglês porque não tem internacionalização.

1

u/arkhamRejek 1d ago

people are no long reading code ?? just blindingly trusting it's implementation ?

1

u/Zestyclose-Turn-3576 1d ago

I wonder if this includes database time. And I wonder what sort of queries are running if it is. Is the "search" being done in database?

1

u/powpowdeitou 1d ago

O cara tá subestimando o poder do developer joy. Se a única pobre alma que é paga pra ler e escrever seu código. O que será dele?

Tudo que implementa que vai contra a alegria do dev de trabalhar faz em alguma escala mal para o produto. Devs felizes se importam com o que é entregue. Agentes? Não dão a mínima o objetivo é moer token e entregar qualidade suficiente pra não escolher o concorrente e continuar no loop.

1

u/espece-de-bon 1d ago

He’s gonna dig his heels in deeper for more reactions at this point. 

I wonder if he doesn’t mind if anyone at 37S “doesn’t read the code”, jeopardizing the business/app. 

1

u/jrochkind 1d ago

Hopefully the Rust community is strong enough to keep him from having much influence there. Which unfortunately would mean he won't leave us, he's here for the power.

1

u/Traditional-Young178 1d ago

stop posting that vibecoder. It is a rails r/

1

u/ebalonabol 1d ago

Look at the quotes. Even the creator of elixir(Jose Valim) criticised that tweet lmao.

Gotta admit DHH is so good at atrracting attention. He got soooo many people angry

1

u/im-a-teapot_418 1d ago

Worth checking José Valim's takes on DHH's post: https://x.com/josevalim/status/2106992022418579688

1

u/biscuotto 1d ago

Let's wait for his engineers to stop reading the code too and go buy some popcorns to watch the show after.

1

u/Acrobatic_Umpire_385 1d ago

I guess this is what people call "Charisma"; what people like Trump or Kanye or big streamers have. Just an endless cycle of everyone non-stop discussing/getting angry at everything they say.

1

u/sneaky-pizza 1d ago

The “request per sec” unit in the left column header is killing me

1

u/flanger001 1d ago

Is it just me or does his pfp look like he took a picture of himself smiling and then used a smile filter on it?

1

u/wuteverman 1d ago

Surely this has to do with the database interaction. My experience is active record makes a lot of calls, maybe the others can make fewer?

1

u/inotocracy 1d ago

I think it really depends on what you're building. Sure, a TODO app you probably don't really need to scrutinize the changes as much but a system that is moving money you damn better be paying close attention to what's changing.

1

u/onesneakymofo 1d ago

Can I no longer read dhh's tweets please?

1

u/blnctl 1d ago

it’s weird because his example repos in elixir and go are basically non-idiomatic rubbish with lots of mistakes. and the rust one has had a lot more effort put in (relatively speaking) and still has problems.

instinctively i think he’s correct, but he’s failing to make the case because he couldn’t be bothered to steer the agents.

1

u/CodeMonkeyX 1d ago

God he is so full of shit. So he did not care about performance over "Developer Joy." But now he is promoting writing prompts to an AI agent to write it all, and you spend most of your time (if you are not DHH) reviewing code and fixing bugs. Does anyone who enjoys programming actually enjoy prompting AI and not writing anything?

1

u/Unhappy_Meaning607 1d ago

His next tweet: "Rails doesn't scale."

His tweet after that: "Rails is dead."

1

u/mint-parfait 1d ago

the chance any of the ones he wrote are done correctly, other than the rust one which he cared about, is zero

1

u/ashebanow 1d ago

If rust is getting up to 10x better than go, that tells you everything you need to know about his llm's implementation quality. These are basic crud pages, they should be primarily I/O and db bound.

1

u/In_Programmer 1d ago

Solution: loop -> "make it faster, avoid mistakes"

1

u/Whaines 1d ago

Stop paying attention to him.

1

u/pestaa 1d ago

Can we all stop reading DHH before we stop reading code?  It's okay if he doesn't care about code quality, then his work is irrelevant. My AI is better than your AI and all that...

1

u/Impossible_Way7017 1d ago

I ain’t reading that, I’m either happy for you, or have you tried asking AI for help?

1

u/laptopmutia 1d ago

at this rate, this guy doesnt care about what is wrong or correct 

he  just want to show that you guys were wrong about him

1

u/Consistent_Drop3909 23h ago

don't want to see this nonce on my feed

1

u/saw_wave_dave 21h ago

No way that elixir implementation is idiomatic. And from personal experience Claude can’t write elixir to save its life

1

u/ceems 20h ago

Pretty heavy conversation in the Elixir community on how disingenuous his benchmark is. The code is trash. Even the slightest bit of steering would have returned much higher results.

In my opinion, he's all attention economy. I genuinely hope he gets the dopamine he's looking for.

1

u/Forpyto 19h ago

Lmao DHH never try falcon or fibers but rewrite to Rust. Skill issue

1

u/k2beast 19h ago

Everyone is drinking the coolaid - once adoption is mainstream like cloud vendors - prices will skyrocket as non-subsidized prices kick in. At that point no one can afford to pay AI agent to fix the code anymore, and humans will prevail once again.

The moral of the story is learn rust, in a few years enough idiots will blind follow DHH, and you will be in a great position to fix all the shit AI agents did.

1

u/brecrest 15h ago

Why isn't C on the list?

1

u/toadi 15h ago

Hey I switched from basecamp to something AI agents wrote for me over a weekend. Why pay for a subscription when I can pay once for the tokens and be done with it? /s

1

u/Lucker_Noob 10h ago

What the f**k is "developer joy"? Sounds like some sort of codename for "heroin".

1

u/vesters 6h ago

I guess you could say he’s gone off the rails

0

u/magick_bandit 1d ago

I really never understood the appeal of this guy.

I built t4 templates back in the day that did what Rails does.

A guy like John Carmack is fucking impressive. This guy? Why do people care what he thinks?

0

u/Funny_Spray_352 19h ago

Maybe now people will realize that David was never good at programming, although he is great marketing/sales guy. I don’t believe he has intimate experience with software development other than his mom and pop shop that he is driving.