It seems to me that many programmers prefer to work at night because there are no distractions at night.
When you have to keep abstract systems in your head every little distraction can be a big problem. Serious work often requires gathering oneself and getting one’s thoughts in order, but if one is distracted, it is much harder to do so.
I have a suspicion that if we structure our work process so that there are fewer distractions, there will be no need for (or fashion of?) night coding.