There does seem to be a distinction between programming as art, and programming as plumbing. Most programming probably falls into the latter category. But even when plumbing, you don't check that the water flows through each joint as it is fitted by turning on the tap. I assume the author doesn't send his article to his editor every time he places a full stop.<p>Perhaps when you are forced to check yourself at every turn, when small mistakes cannot be ignored and instead become hard walls to progress, that's when creativity is stifled. When writing an article, small spelling mistakes can be corrected in the second draft, but the ideas are already on paper and can be exchanged with others.<p>It all comes back to flow, transcending the mundane to imagine the creative. And so to the question implied in the article: is there something inherent to programming which inhibits flow?<p>I see three possibilities. 1) The programmer becomes an expert, and so transcends the distraction of small mistakes simply by not making small mistakes. 2) The programmer chooses an environment which either tolerates, ignores or fixes small mistakes, whether through postponing compile time errors to run time, or by automated refactoring to always leave the code ready to compile. Or finally, 3) the programmer simply never gets into the flow, and as with the author, creativity is void.