Almost 20 years ago (!) I opined: "C is the New Assembly", suggesting that we had moved beyond the need to optimize things by writing assembly code. If I wrote the same article today, it might be "Hand-written Code is the New Assembly" https://redsweater.com/blog/278/c-is-the-new-assembly
C Is The New Assembly –

@danielpunkass Worked Bell Labs in 1980’s before breakup of AT&T. Learned Unix & C quickly after starting, took C with me when left to program IBM PC’s for rest of my career. Very useful for early PC’s with slow processors, could switch to Assembly from C at any time for asynch communication algorithms & the like that required all the speed the processor was capable of. Loved the language & the power it provided the programmer, of course no-one else could ever figure out how my programs worked 🙂
@danielpunkass in time, developers will develop idioms to control the unpredictability of LLMs by precisely specifying what they should do. We can expect these idioms to become standardized over time, and develop special notation and jargon to make the specifications easier to type, modify, and maintain. for efficiency, maybe those specifications can even be directly translated into machine instructions, without involving the overhead of an LLM
@joe @danielpunkass ohh you’re talking about Executable UML

@danielpunkass It’s not the same though. C to assembly is a deterministic process with verifiably-correct output. English to C (or whatever) via LLM is a non-deterministic process using imprecise language.

I don’t need to know assembly because the process is precise. How many people check that their compiler output the correct binary?

With LLMs I need some way to verify correctness. How would your new article account for that difference?

@danielpunkass (Aside: I have worked on aerospace projects where we did literally verify that the compiler output was correct. It always was. The one failure I remember finding was actually in a processor, not the compiler!)

@danielpunkass Wow, quite a few familiar names on the replies to this 19 year old post. A couple of years later and this discussion would probably have been on Twitter and now effectively lost. But since they were hosted on Daniel’s blog, the whole discussion is still available. How did that Ruby/Cocoa bridge work out, btw? 🤣

Daniel, are you going to start checking your prompts into source control and toss the generated source code? And just rerun the prompts again? When that happens I might agree that a phase change has occurred, but for now I’m not holding my breath. There never was a phase where developers would take compiler output and review and revise it, as routinely happens with LLM generated code today. What’s happening now is something new, with no real analogy to anything earlier.