mostly depends on what I'm working on. If it's for my 9-5 job, I tend to be most productive after lunch (I'm SO NOT a morning person). I've "woke" up and have already gone over non-coding tasks by then. Also, as others have noted, distractions do not help with outputting good code. I hate when my boss (the CEO of the company) has a thought pop into his head and comes over to my desk to discuss it without regard to where my thought process is at!
if I'm working on my side project, usually after dinner I'm the most productive. I've detached (usually) myself from work issues, had a chance to unwind, then I'm good to go for the rest of the night :)