I like this reason from Swizec Teller better than his other two regarding the propensity of some to work at night:
On the other hand you have something [Paul Graham] calls the maker’s schedule – a schedule for those of us who produce stuff. Working on large abstract systems involves fitting the whole thing into your mind – somebody once likened this to constructing a house out of expensive crystal glassand as soon as someone distracts you, it all comes barreling down and shatters into a thousand pieces.
This is why programmers are so annoyed when you distract them.
This aptly describes my preferred workflow. When finishing my dissertation last fall, my wife was nice enough to let me change my schedule. I would go into the office around 2-3 p.m. and stay until 4-4:30 a.m. I didn't work the entire time - just dabbled here and there. But between 11 p.m. and 3:30 a.m, time disappeared and I was immensely productive. That time frame has always been my bread and butter, likely for reasons described by Teller.