11 karma · joined April 6, 2010
Sitting almost perfectly still in front of a computer and concentrating for hours and hours at a stretch is not a natural act. Humans are wired to get involved with the social activities going on around them. Depending on the difficulty of what you are working on, a few family interruptions per day or a too-high noise level from elsewhere in the house can destroy the quality of your work for the entire day.
Interruptions are also a big problem in a traditional office environment, but there you have much less invested in your efficiency. If management isn't willing to pay for private offices where the staff can concentrate properly -- then they get what they pay for and its not really the programmer's job to question it. At least everybody in a shared office area is in the same boat and everybody suffers from the same distractions.
In a startup, however, interruptions can ruin you and must be dealt with.
"The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means."
I agree with Knuth. All my blog post is saying is that, given that a program is little more than a bunch of words (symbol names), we might as well make those words be the documentation instead of cluttering up the screen with more words that we call comments.