[From MyMindKeepsWandering]
When you're programming, you're not doing physically demanding work, but it's quite intellectually demanding. I don't think most human minds are meant to have such tight focus for more than four hours or so. Taking a break to do something non-cerebral -- yoga, shopping, etc. -- is a pretty good way to recharge. I have a sneaking suspicion that once upon a time, lunch hours were used for this. Or maybe that's just nostalgia.
When I can, I try to schedule long breaks in the middle of my day and do other things. Yoga class is killer for this purpose. Sure, I end up staying at work two hours later than I would otherwise, but I do stuff in the middle of the day I wanted to do otherwise.
LifesJustTooShort to spend all day behind your desk.
Having a few drinks during lunch also helps.
See also: EatBreakfast