znnajdla
7 hours ago
The article gives the example of Bun's successful Zig to Rust of why this is the end of programming. I think that rewrite is a perfect example of why it's NOT the end of software engineering. A non-programmer could not have prompted AI to do that rewrite, and in fact a non-programmer would not have even conceived of the idea of doing that rewrite in the first place. Somebody is still needed to 1. come up with the idea that a Zig-to-Rust rewrite is necessary to achieve certain technical goals 2. prompt the AI to do the rewrite, clearly describing the before-and-after architecture, the goal of the rewrite, and technically verifying the result.
Neither 1 nor 2 can be done by someone who doesn't even know what Bun, Zig, or Rust is, let alone deeply understand how those work. In fact, even I as a programmer with decades of experience in PHP/Python/JS but without specific experience in Zig and Rust probably couldn't do a proper rewrite for a project the size of Bun.
kodoman
6 hours ago
Yeah when ever I have been worried about AI completely removing the need for any kind of programming skill I think about how much I had to guide it and stop it doing dumb things (even when using Sol or Fable).
I also tried to vibe code a machine learning thing and it got to a level where I was lost and I tried to move ahead without understanding the problem and let the agent figure it out. And despite using Fable it was a mess and I realized that I had to teach my self more before I can continue. Even worse it felt like it was working for a bit until It become clear it was trash. I would Imagine that kind of experience would annoy a lot of non-developers and they would not want to try again.
It feels like this narrative of programming and computer sciences skills being irrelevant is pushed by many groups (not just AI companies) who want to reduce the value of human skill and talent both financially and socially. It's quite insidious when you think about it, A gleeful sort of tone is detectable where the person is happy that nothing require mental effort or skill. Not that this is that article and that it seems to be saying that AI has changed everything (which I agree some what though I think people will still write some code by hand, Their are still things I code entirely by hand usually certain scripts or things I really need to understand and my intuition of them is important)
dogcomplex
6 hours ago
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 and after expected states) the final result.
They just needed us to ask. Build a sufficiently general research program that can find and iterate on ideas, and it will do the asking itself.
znnajdla
6 hours ago
Sure, maybe step 2 can eventually be replaced by AI. But step 1? Why would the AI even conceive of the idea of doing a rewrite in the first place?
And rewriting is just an example. There are tons of architectural decisions that need to be made every day in the building of advanced software. This is no "correct" way to do it that the AI can know in advance, it's a technical decision to be made by an engineer.
satvikpendem
6 hours ago
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.
znnajdla
6 hours ago
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 dependencies in Rust that is live and serving thousands of users. Doing a full rewrite would take days to execute, and have all sorts of side effects on the actual users during deployment (even if it was done 100% correctly, work has to be paused, affairs need to be coordinated with real customers, etc.). Even if the AI has that capability (and I do believe it is possible, even with today's models), that's not what a business owner wants. You don't want to use an AI which, if you gave it a 3 word prompt, it could suddenly decide on its own to rewrite your whole entire business. An AI that had that much autonomy could just decide on its own to pivot your whole startup and sell something else. A business owner wouldn't even want to use such an AI which could have such large unbounded side effects.
kodoman
6 hours ago
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 agents to tend towards adding new code and building over features I don't think you end up with a good solution.
On formal verification having done it only in an academic sense and looked over at projects like seL4 and quite interested in that project. It feels like actually proving useful properties of programs for real programs even ones with well defined domains and easier to model such as interpreters or compilers it seems that it will just prove theorems about properties that hardly matter or don't even matter at all. See how bad it still tends to be when trying to get it to write tests.
I would be interested to know if their has been an agent that has actually utilized formal methods such as Lean or Coq or Isabella to prove properties of programs in an automated way as you suggest, I have only seen it proving mathematics and or searching for counter examples, not writing Curry-Howard style proofs.
znnajdla
6 hours ago
> I don't think you end up with a good solution
More precisely, a "perfect solution" doesn't exist. It's all tradeoffs given your goals. Someone needs to make the decision: 1. which tradeoffs are worth given your goals 2. which goals are worth defining or redefining. And do that effectively, you need to understand the problem, which goes back to engineering.
otabdeveloper4
6 hours ago
Source code transpilers were a thing since forever.
We'd guess that LLMs probably make them cheaper, but there's no real world data on this.