>because the size and complexity of modern software is far beyond the ability of individual users to reason about it based just on the source code and without any augmentation
I feel this. You should be able to understand your computer.
Cool. I think we should understand the physics of our homes' use of energy. The world is full of complexity and no single person can understand everything. I don't think software is what everyone needs to understand.
Belaboring the point: you should have SOME working understanding of the physics of your homes use of energy. You should be able to fix your home when something’s wrong with it, so long as it’s not something catastrophically wrong that requires professional help (such as the fire brigade).
The point: computers are different from everything else. Pre-writing man is a fundamentally different character to literate, historical man. (I do believe there’s an Egyptian dialogue on the matter.) And in the same manner, computing man is a fundamentally different character from pre-computing man. However, most people, despite their USE of computers, cannot really compute, because they can only get their computers to do what other people have told them to do, and not what they themselves have told their computers to do. In other words, to them the computer is an appliance. Now, not everyone can read Ulysses, or Durants history, and I don’t think it would be fair to expect that of people. But most people can read, and they can read the whole book if they choose. The qualitative shift of computational man finds that what he has read can be made into action, simply by it having been written, yet this does not hold true for a person who is handed Durants history of the world, or Livy’s history of Rome (before having been taught Latin, even!) and being told, you have knowledge, even though you can’t get through it all.
You start people with shorter books. Even picture books. You start them with simpler computers, with simpler software, and then more complex computers which do more complex things. And even in the professional world, of fully literate adults, you only break out the really complicated stuff for the really complicated things.
Software should be comprehensible, because it is meant to be comprehensible, it is not just execution but elocution, and is the explanation of its own intent.
> The qualitative shift of computational man finds that what he has read can be made into action, simply by it having been written, yet this does not hold true for a person who is handed Durants history of the world, or Livy’s history of Rome (before having been taught Latin, even!) and being told, you have knowledge, even though you can’t get through it all.
I think you have much too high a regard for your own interests and craft. I can guarantee you a cabinetmaker, machinist, pilot, doctor, or lawyer can make any and more of the same style of arguments. A little bit of computational knowledge? Yes it's very useful, and that's what low-code tools like Excel/spreadsheets are for. Akin to learning the basics of reading. More than that? No I think you overestimate the usefulness of computing, and most people only have a working knowledge of reading and writing. The world is full of complexity everywhere. Computing isn't the only thing with this force multiplier effect for humanity.
It is surely different in the sense that it has the complexity of higher order.
Every software in addition to the complexity of the implementation also reflects the complexity of the domain: if one person cannot grasp the full picture of the domain, the same person cannot be expected to understand the software for it. We are beyond the point when for many domains a single human being could understand them in their entirety. 20 years ago I could say I understand and can replicate the technology behind a personal computer from silicon to OS internals to GUI application on a CRT screen (I studied electronics and computer science). Today even a specialist in one of the layers will need a lot of time to understand an unfamiliar product. If we cannot do it, we should focus not on how we can get access to the code but on how we can entrust the audit and repair responsibility to someone else who is a specialist. And that’s a different story.
I feel this. You should be able to understand your computer.