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 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.
Back in the very early days you would have used script/plugin install (svn url)
Here's one of my mirror repositories migrated from SVN into git. https://github.com/jaggederest/acts_as_voteable
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.
1. You get complexity back at the speed that you add code. Also the complexity compounds.
2. As a human you are still responsible for your code, and you need to understand how the important parts of the code base work.
When you combine these problems, you get a complicated code base where you don't understand the important parts.
That is why software design is getting a comeback. It actually helps with both problems. Less complexity and more understanding.
The part I'm still not sure about is the 2nd point, I just don't know how good those LLMs will get at managing complexity and how important is for human to understand the details of the code. I'm personally not sure yet..I could imagine a future where we have have much more higher level tools to manage the comprehension and complexity challenges. Or it could be that LLMs will never fully comprehend the full architecture and humans will always be needed for that kind of big-picture analysis. I really don't know, and frankly I don't think anybody knows.