This is a indeed an important reminder that there is still progress to be made in the realm of software development. By raising the bar of abstractions, perhaps by guiding agents toward them, we might be able to follow along better. It is too tempting to take allow the growing capabilities of ai to lower the standards on software developmenbt.
Unfortunately it's very easy (and tempting) to get lost in the sauce, we as a society gave up our heads to social media and look where it got us. I'm afraid we're going the same route with software development and computer science.
> We must take the same attitude in computing: use abstractions, refactor, refine scope, invent and adopt higher-level languages, until we can hold the code in our head.
I want to believe this is true. But as an counterexample, do we need to hold machine code or assembly, generated from our C or Golang programs, in our heads? Or rather the Golang code is a high-level abstraction which is good enough?
If that's the case, does it mean we should go even further and treat design docs as the code suitable to hold in head and treat Golang program as a derivative? Or maybe design docs are also too low-level and the general vibe "create me an app, make no mistakes" is actually enough?
What's the right abstraction level? How to find it?