Live data from Hacker News

The End of Programming

pauldix.com

111–120 of 124 posts

Re: The End of Programming

#111
> The prototype is working software. And the improvement and testing of that prototype is further enabled by more improvement loops with the AI. It gets better with more testing and verification, not through human code review, but through usage and testing.

I would love it if it was that simple :-) Agents can one-shot this prototype and that feels like they are "almost done". The hard part starts when we try to make it production-grade.

I'm not saying that it's not possible, but it requires more effort than productionizing a PoC that we used to create "by hand". We start to discover shortcuts taken by the coding agent and we spend 80% of the time on getting the last 20% right (but to be clear, it's still less time than writing it by hand).

It looks like the author may not have hit this reality check yet:

> Of course, neither of these things is currently shipped, or supported and isn’t what I’d call production ready software. So you could say what many say about AI, which is that it helps you ship the prototype faster. But that isn’t really giving enough credit here.

For AI-generated code, finding "the last 20% rough edges" is much, much harder than creating PoC. Often the rough edges are buried in the code that we don't know. Fixing those problems requires big refactors that, for wrongly architected code, can break other things.

Tests help, but that's not enough for models to autonomously fix them. If they make one error, it compounds over multiple iterations.

It's especially true for problems where we don't have a clear oracle. It's impressive that models can brute-force problems with a clear oracle. But many problems where a clear oracle doesn't exist (a lot of business software that I know) will still require a lot of product engineering.

Maybe it will improve? I'm not sure if it can happen with hallucinations around (from what I see, they are still a big deal for domains that agents are not trained on).

Re: The End of Programming

#113
post #93
post #86

Earlier quoted context omitted.

I come to conclusion that software source code will be kind of ephemeral output, like binaries are today. If you are not happy about slop accumulation, you take still valid functional requirements, docs, API contracts, test cases, some selection of still valid prompt history, and let better agent rewrite everything from scratch. Even if the session costs $200K one time - that is very cheap even for SMEs.

I really worry about "regressions" in that model. If you regenerate everything all the time. Do you keep issues fixed or constantly end up introducing new issues. Well it might work with absolute total test coverage. Which seems to be very high bar to reach.

In fairly complex system fixing issues in-place still introduces regressions.

Exactly, tight E2E test coverage and obviously manual functional verification to seal the coverage gaps will be needed even more.

Re: The End of Programming

#114
post #42

Earlier quoted context omitted.

The whole point is that we’re TikToking the software industry and no one will know what to tell the ai to get the software written in a way that works. It’s in principle the same as idiocracy where no one knows how to make burrito covers anymore because shit won’t grow

Maybe we need to start cryofreezing some of our best engineers as a precaution. Or even just a bunch of average ones.

Imagine being Guido van Rossum typing away and then the cryo-freeze squad (new ICE) comes knocking.

Re: The End of Programming

#115
post #9

This is a strong article with a distracting headline. Challenge for commenters: can you discuss the content without getting caught up in the headline? My favorite paragraph: > The fact that AI wrote 1M LOC and then refined it over the course of the next couple of months to produce a reliable piece of software that is currently running on millions of developer machines is absolutely mind blowing. And you can say, “wel…

I think that the bun rewrite actually supports the oppposite conclusion in a lot of ways:

1. The resulting code was of pretty low quality. Others that bothered to put it through Miri and the like found many soundness issues, but my personal favorite example is this example which is trivially and locally (meaning that someone who has the most basic understanding of unsafe in rust can see it's obviously wrong just by looking at the specific function) incorrect example [0]. This particular example was removed in an apparently unrelated refactor after spending well over a month in the code base without any of the bun maintainers or their agents detecting it, and a quick grep found hundreds of potential similar issues (although many of those are false positives).

2. More generally, it's not clear to me that there was any technical benefit to the rewrite in the first place. The stated reason was for memory safety, but replacing Zig with unsafe rust doesn't actually get you memory safety, and removing the unsafe blocks often requires more extensive refactors to fit within rust's model.

> If you can reduce a problem to a clearly verifiable end state, provide the necessary context, and equip a model with the necessary tools it can usually get to a good solution.

As others have pointed out (and you acknowledge), "reducing a problem to a clearly verifiable end state" is just "programming". What you don't seem to understand is that actually doing that is made harder by using AI, not easier. A sufficiently detailed spec is called "code" [1], the question is what language/notation is best to write it in. The answer is almost never "whatever is closest to what the computer actually executes", as assemblers and later compilers and interpreters demonstrated. But it also isn't several of the things that AI proponents have suggested to replace the latter with.

Take natural language, for example. As Dijkstra pointed out, we've been through this already with math. It used to be that all math was expressed in a way closer to what we'd now call "word problems", but this turned out to be bad. The specialized language of e.g. algebra isn't something mathematicians use to gate-keep, it's way easier to reason in the domain that way than it is in English (or other natural languages). The same is true for programming, once you actually specify what you want to do with enough rigor. It's generally easier to read and reason about code than to do so with natural language specifications.

Another proposal is to use tests and similar automatic verification to specify the program. I suspect that anyone with much experience can already tell whether it's preferable to specify a program through code or through tests, but thankfully we have empirical evidence on this for anyone who has any doubts in the form of e.g. sqlite. Sqlite is probably one of if not the closest any piece of software comes to being fully specified by it's tests. To do that takes almost 600 times as much test code as there is "regular" code. Dr. Hipp even personally weighed in on the implications this has on AI recently [3] . The reason to do testing is that it provides a second independent check for correctness, if you're using it as the *only* check that advantage disappears.

[0] https://github.com/oven-sh/bun/blob/fc865b398e51de8a95ddde4b...

[1] https://haskellforall.com/2026/03/a-sufficiently-detailed-sp...

[2] https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...

[3] https://youtu.be/V_qzqY1bb7I?t=2727

Re: The End of Programming

#116
post #9

This is a strong article with a distracting headline. Challenge for commenters: can you discuss the content without getting caught up in the headline? My favorite paragraph: > The fact that AI wrote 1M LOC and then refined it over the course of the next couple of months to produce a reliable piece of software that is currently running on millions of developer machines is absolutely mind blowing. And you can say, “wel…

I think that the bun rewrite actually supports the oppposite conclusion in a lot of ways: 1. The resulting code was of pretty low quality. Others that bothered to put it through Miri and the like found many soundness issues, but my personal favorite example is this example which is trivially and locally (meaning that someone who has the most basic understanding of unsafe in rust can see it's obviously wrong just by l…

> More generally, it's not clear to me that there was any technical benefit to the rewrite in the first place.

The Bun 1.4 announcement claims: https://bun.com/blog/bun-v1.4

> It reduces idle CPU usage by 5x, reduces memory usage by up to 35%, and starts 50% faster on Linux.

Re: The End of Programming

#117
post #116

Earlier quoted context omitted.

I think that the bun rewrite actually supports the oppposite conclusion in a lot of ways: 1. The resulting code was of pretty low quality. Others that bothered to put it through Miri and the like found many soundness issues, but my personal favorite example is this example which is trivially and locally (meaning that someone who has the most basic understanding of unsafe in rust can see it's obviously wrong just by l…

> More generally, it's not clear to me that there was any technical benefit to the rewrite in the first place. The Bun 1.4 announcement claims: https://bun.com/blog/bun-v1.4 > It reduces idle CPU usage by 5x, reduces memory usage by up to 35%, and starts 50% faster on Linux.

The announcement also makes it very clear that 1.4 isn't just a rust port of 1.3. Rust is my favorite language and it can be a bit faster than other systems languages in the right circumstances (because the compiler can make optimizations based on assumptions that wouldn't hold without the borrow checker), but numbers like those seem far more likely to be the result of other changes than the language shift.

Re: The End of Programming

#118

Earlier quoted context omitted.

Maybe it sees a bunch of segfaults in the Zig codebase and decides a memory safe language is better, just as the human did in Bun's rewrite. I'm not sure why you think it wouldn't have been able to conceive a rewrite.

Such an AI would be unusable in production because there is no bound on the work that can be created and external side effects that could happen. All projects have real world constraints and side effects, budget, customer requirements, etc. Imagine a non-technical person prompting the AI "make the app faster and fix all the bugs" and the AI autonomously decides to rewrite the whole production app and all its dependen…

You are essentially describing an over-eager developer having to run decisions up the chain of command to senior devs / product owners / company execs. I assure you, every one of those roles is being trained on to balance their own wide breadth of concerns, and is unlikely to advise something like a live rewrite of a production app or an entire product pivot - unless it actually made sense from an economics/management perspective. Every step bounded by its role and responsibilities.

Turtles all the way up, and all the way down. AI getting this good at coding means it's a hop skip and a jump away from being this good at every white collar role.

Re: The End of Programming

#119
Ultimately the Bun rewrite takes on trust that there was no human review/intervention, even though I assume Anthropic have a lot of very good engineers and it needed to work perfectly for it to be good PR.

I'd be very surprised if there was not a lot more human work than they are making out. They're certainly not a trustworthy source.

If not, do we really think no one at Bun now has a mental model of how their own software works, and only Claude can fix it moving forward?

Re: The End of Programming

#120
post #92

Earlier quoted context omitted.

Yes but those are all semantic tasks which can be done and understood in time by the next iteration of models training at that meta-level of architectural analysis. AI deeply understands what Bun, Zig and Rust are, how they work, can conceive of the before and after architecture (probably the hard step here), can conceive of the goal of the rewrite, and can verify (using Lean and machine-checked proofs of the before…

I feel like leaving it to decide everything would not produce a good end product. It feels like just having it decide how GC should work, how the function call stack should work or any of these rather simple but actually requiring lots of decision and thinking how things fit together (and pick a good solution out of many seemingly good solutions that can come back to bite you), couple this with the tendency for AI ag…

Shoutout to Toph https://x.com/VictorTaelin who's been building a programming language out of formal method Lean proof checkers, which probably would indeed have the scope you're looking for.

I do think the current state of the AI just using rigorous tests and rendering inspection loops is still far more than most programmers did for the majority of apps, but yes I think rigorous formal verification will come too. Worst case it's gonna be something like a MechanicalTurk pipeline having us humans verify narrowed scopes the AI can't confidently inspect (yet. while also training on those results for next iteration)

As for the decision stack of what makes a good end product - turtles all the way up/down. The ProductOwnerAI role decides those things, and it will likely do so with the same deep skill that programming AIs are currently hitting our profession with. Optimizing enormous breadths of concerns and simulating results is AI's main specialty.

Post reply on HN