Why do programmers work at night? I can be described as a morning person, where waking up at 4:20 AM to catch a flight is no problem. My colleague on the other hand go to bed no earlier than midnight and often later than that.

We're both programmers, and if we're in a critical phase of a project, my colleague works until 3AM, and I start at 4AM. Still both times are in the middle of the night and we tend to get most work done at off working hours.

Question is why that is?
Probably both a combination of being more tired and fewer distractions. Most other people will be asleep during the night. Programming is adversely affected by context-switching, thus night-time with stimulant-enhanced soda is more likely to provide you with long periods of interruption free coding.

Update: The above situation creates the conditions where Csíkszentmihályi's Flow is most likely to take place.