overgard
2 days ago
I feel like the AI labs have an embrace-extend-extinguish model here like Microsoft of the 90s. Train your models on all the open source code, then extinguish the ecosystem since open source libraries are essentially a competitor. (If there were no libraries you'd have to ask the AI to do everything!) Like, personally I think the reason why AI works as well as it does for typescript is because it's essentially gluing together a lot of open source code written by humans. The interesting functionality is mostly in those libraries. A developer that doesn't want to use AI can still be pretty productive within that context, but if the ecosystem is absolutely decimated..
sshine
2 days ago
> extinguish the ecosystem since open source libraries are essentially a competitor. (If there were no libraries you'd have to ask the AI to do everything!)
That is neither the incentive of AI companies nor the truth.
Availability of Open Source where stealing and illegal relicensing is not being litigated, is a perfect ecosystem for AI to work in.
Maintainer exhaustion is totally a secondary effect, not intended. The maintainer economy was already not working out, AI amplified the asymmetry at play.
overgard
2 days ago
As far as I can tell, Anthropic's entire goal is to extinguish software development as a profession. They're not exactly subtle. If they do that, I don't see how they wouldn't take out open source with it as a consequence. If nobody even looks at code why would anyone bother to publish a library, much less care about making it maintainable? Shit, if everybody is vibe coding how long before your "average" dev has no idea what a library even is or why you'd want one?
sshine
2 days ago
> Anthropic's entire goal is to extinguish software development as a profession
They’re killing “programmer”, not “code”.
> I don't see how they wouldn't take out open source with it as a consequence
An analogy: the automobile industry sought to make working horses redundant, not to go door-to-door and kill horses. Horses getting chopped was an indirect economic consequence.
> If nobody even looks at code why would anyone bother to publish a library, much less care about making it maintainable?
For the exact same reasons as before. Agentic programming still integrates well with the existing ecosystem; I’ll tell agents which libraries to use, so I know what to expect.
While I don’t read the implementation of anything any more unless there’s a hard algorithmic problem, I do make an effort to read and document APIs thoroughly.
Interfacing is exactly the same, it’s just agents doing it.
> if everybody is vibe coding how long before your "average" dev has no idea what a library even is or why you'd want one?
That is a very good question.
jdkoeck
2 days ago
> While I don’t read the implementation of anything any more unless there’s a hard algorithmic problem, I do make an effort to read and document APIs thoroughly.
I have some questions.
Are you doing this for client-facing production code?
It seems you believe painting over APIs with some amount of documentation will guarantee the implementation is correct and well designed. Am I misreading that?
You say you still read code when code is « algorithmically hard ». How do you define that?
Software systems have requirements that are essential but not algorithmically hard. For instance, access control in a web application must be thorough and cover all REST resources. How do you know the implementation has the desired properties if you don’t read the code?
Do you have tests? How do you know they’re correct if you don’t read the code? Moreover, how do know if their coverage is sufficient if you don’t read the code?
Do you refactor code or is that not needed anymore?
I don’t understand your answer to the question of why anyone would publish a library if no one reads code anymore. « For the exact same reasons as before ». How so? This isn’t making sense.
sshine
2 hours ago
> Are you doing this for client-facing production code?
What's "this"? We're talking about multiple things here.
But presumably yes: I'm working through agents, and all I do is read and prompt. I don't manually write code except Markdown and occasionally Nix code because it's sufficiently high-level, and I rarely read the Rust code. The Nix code is based on templates I wrote by hand, and the Rust code is based on crate selection and some loose principles I've derived from years of programming Rust by hand.
> It seems you believe painting over APIs with some amount of documentation will guarantee the implementation is correct and well designed. Am I misreading that?
I don't believe that, you're misreading.
I'm saying:
- Making and documenting APIs well is just as necessary as before I wrote to files.
- Correctness is achieved through strong types and extensive testing of all kinds.
> Do you have tests? How do you know they’re correct if you don’t read the code? Moreover, how do know if their coverage is sufficient if you don’t read the code?There are different tests, and I know they work for different reasons.
I'll list a few kinds that I've found actually valuable in the recent past:
Manual user tests: While expensive, they're most truthful in revealing bugs and confirming if they still exist. We do this by dogfooding our own product, and by running manual user tests before major deployments. User tests help uncover problems like delays that don't appear as errors, but can be major UX bugs (like waiting ten seconds for the effect of a button press).
TDD regression tests: A user experiences an error in the application, this gets reported, the agent analyses the code and writes one or more unit tests to confirm the problem, and writes a fix to see the light go green. I know this test works because it fails first. There's an odd chance the agent either uncovered a different bug, or wrote a test that fails synthetically. I haven't tried the latter, but I've tried many times that it wrote "a test" that passes but the app still crashes. So TDD order matters. And I've tried that it found several more bugs by analysing the code. (Most recent example: https://github.com/atuinsh/atuin/issues/3603 ) Another example of a TDD regression test is: Some async code prematurely exited, I scanned for the class of bugs and found one other case and fixed it, TDD. There's a very simple consideration to make that could be expressed as a linter rule, but is more easily expressed as a single sentence in CLAUDE.md, since it will appear again (it's a pattern I and former colleagues have made several times).
End-to-end integration tests: Wire up all parts of the system in either a semi-authentic (say, docker compose-based with some mocks) or in a fully authentic staging environment (say, Kubernetes); I do both, and it catches both bugs and performance regressions by simulating real workloads. I haven't automated the performance regression testing, only workload simulation, and then I assess the metrics myself.
Algorithmic pareto-optimality: I have an algorithm that can be measured in number of steps by measure of API calls, and number of successful calls; correctness would be "the algorithm gives the same result", and pareto-optimality would be "it doesn't use more steps in the refactored version". Computing time isn't really the cost here, the cumulative size of API payloads are. The API part can actually be mocked, or "made golden" (I've just now learned that it's called a "characterization test", https://en.wikipedia.org/wiki/Characterization_test, but I always called it a golden test from having read that.)
"Full coverage unit tests": I don't actually know how valuable these are. But for example, I went with "Find all functions that return Result<T> or Option<T> and test all their edge cases." Some ~87 functions, some ~150 tests. No failures. But I'd be surprised, because the type of mistake these tests generally fix for me, as a human, are typos and copy-paste errors, and big models generally don't make those.
> You say you still read code when code is « algorithmically hard ». How do you define that?
I don't have a good definition. I recently deployed a service that runs something my colleagues call "the algorithm". It's some progressive audio transcription thing. My colleagues feel uncomfortable going live with something that appears to work that nobody read, so I read what was made.
I think the value of reading algorithmically hard code is not to assess correctness, but to regain cognitive debt in case something breaks and you don't know how it's made. I've consulted for people whose main programmer left and they were stuck with a machine they couldn't comprehend, start, or start to comprehend.
Point being: Code review isn't ideal for catching hard logical bugs, it's for understanding code so that you may eventually understand hard logical bugs when they surface.
> Do you refactor code or is that not needed anymore?
The need for software architecting and refactoring are exactly the same.
Only maybe more and sooner because the amount of code increases.
> I don’t understand your answer to the question of why anyone would publish a library if no one reads code anymore. « For the exact same reasons as before ». How so? This isn’t making sense.
I don't understand why it doesn't make sense.
Agents will read code. Humans do occasionally read some code.
But the value of a well-polished, tested library is not just for humans to read.
A good library will make your code better, because vibing on the spot delivers less guarantee that it's good. You'll miss some effort spent on proper data modelling and edge case and error handling. Sometimes that's the right call.
Say you build a parser for a small language. Using a parser combinator library, you get nice error messages and some very non-trivial thoughts on resuming parsing from a failed state. A vibed parser will give you neither of those.
There are some points related to supply-chain minimization.
But it's the exact same tradeoff, where the choice-points are pushed around.
svachalek
2 days ago
Well it's not the dev who would want one, it's the agent, for the same reliability/security reasons that a dev historically would have.
krupan
2 days ago
I think you are correct on how it's playing out because AI cannot write software very well all on its own. The dream is that AI is so good that it can write all the code you need from scratch, replacing all and any code written by anyone else, but that's not happening
sshine
2 days ago
With guidance, it kind of is happening.
While, simultaneously, an abundance of slop is being made.
selectodude
2 days ago
GPT-5.6 just finished writing a shim for me in rust that sits between Broadcom’s bullshit kernel and a standard Linux user space to turn my mesh routers into standard computers. At some point I’m not sure what the difference is in practice.
Note: I can’t code. Not a line.
adithyassekhar
2 days ago
That is amazing, I am surprised how the other replies to your comment just ignore that aspect pf it.
selectodude
a day ago
I thought it was cool too, though I understand AI use is a heated debate and I think people get their backs up that some dumb illiterate like me who can't code has ghidra on my laptop decompiling kernel headers. I get it, the deluge is coming for my job too.
vinceguidry
2 days ago
What do you need your tiny routers to do?
selectodude
a day ago
Not run all of ASUS's unstable garbage software.
smcnally
2 days ago
Does this work on early Velop mesh nodes, by chance?
selectodude
a day ago
Doubt it - Linksys encrypts their firmware. ASUS not only doesn't, but left everything in the binary that made it really easy for GPT-5.6 to crack it open and decompile everything in ghidra.
socialcommenter
2 days ago
> Maintainer exhaustion is totally a secondary effect, not intended.
Malice, incompetence, etc. My question is, how much does it matter _why_ the problem exists because of AI/is being exacerbated by AI?
watwut
2 days ago
> That is neither the incentive of AI companies nor the truth
They literally sell themselves to investors as the thing that will destroy everything people create. That is their bragging point. And they are using things people created to destroy them and their future work.
Those are their openly stated goals. Which they claimed to achieve 2 years ago.
efitz
2 days ago
Nowadays reading HN comments I imagine what it was like watching a buggy whip manufacturers meeting around the time of Henry Ford. The world is changing and many previous assumptions are being exposed as not widely held.
Most people in the world don’t care how software comes into existence or what the source code looks like, and never did. Just like most people never cared how most anything else was made. We are seeing software turn from a handcrafted commodity to a mass produced product. The quality is getting better and the cost of production is getting cheaper and this is happening at an astonishing rate.
The world is changing. As much as you enjoyed lovingly crafting buggy whips; most people just want the car. It’s not cruelty; it’s that buggy whips were never the point.
overgard
an hour ago
I don't think this analogy holds. I'll give you an example of why.
One of my skills is graphics programming. A decade ago, a huge part of my job was writing special effect shaders for videogames -- kind of as a technical artist (although that wasn't my exact title). One of the things I saw coming was that shaders were being created by shader graphs, which allowed non-technical artists to do a lot of the same things. This was fine though! You know why? Because I could reskill into new things, and a lot of my old knowledge was still useful.
If these oligarchs get what they want, "the nerd reich" is I think we should start calling them (these people are insanely far right), there would be nothing to reskill into. It's not "buggy whips are gone so I should work on cars", it's "I guess I'm just living off disability checks now?" I don't know why anyone not directly affiliated with an AI company is ok with that! It's not "progress" to destroy the entire economy. I don't think they can ACCOMPLISH that, because frankly they're mostly incredibly stupid, but that's absolutely what they want.
epihelix
a day ago
I didn't know that people used to make buggy whips for free and give them away?
The thing about FOSS that everyone keeps forgetting is that it sits outside the market economy.
We write FOSS code because we love doing it, and love giving it away. If nobody else uses my code, I don't care - I'll still write it and still release it. That's the way it's always been, and LLMs will not change this (quite the contrary - they make it easier to realise and maintain FOSS projects).
tonyedgecombe
2 days ago
>most people just want the car.
That didn’t happen on its own. It took a huge amount of marketing and lobbying to get where we are today.
worthless-trash
a day ago
I see more of it like cannibals sitting around a fire, trying to decide where they get their next meal from while side-eying their neighbors body fat percentage.
JackSlateur
2 hours ago
You are correct, AI is sold as a self-fullfilling prophecy
People are thinking that AI will become better than human. It is easier to make humans worse than AI.