When you're programming, the very act of trying to e xplain it to another human being forces you to get more clarity. And then later on, you can maintain, modify, and port your programs to other platforms much more easily. Even if your only audience is yourself, everything gets better. Judging from the number of bugs that we see in commercial software, vendors seem to prioritize features over error-free code. There is no royal road, and you can't make any complex program totally failsafe.
Computer programs are the most complicated things that humans have ever created.
That's why I say this idea of exposition is the best way of coping with the complexity. When I'm writing a program, I approach it as if I were writing a short story. It doesn't take me longer, because the time I spend on organization is more than made up for in time saved debugging. He didn't think about how we'd all cope with 1000 programs a day, but I note that controlle d growth failed on the other side of the Iron Curtain. You need uncertainty to foster innovation.