> It's actually an indictment of our programming tools that they require one to hold so much of the design context in one's head.
Completely true. That is exactly the Bret Victor's point in "Inventing on Principle":
http://worrydream.com/#!/LearnableProgramming
Programming tools (languages, APIs, IDEs) needs to reduce the problem you need to hold in your head.