Barack Obama is a great candidate. He's smart, articulate and is a pleasure to listen to. Half the Democratic base loves him, and the other half is willing to "close their eyes and think of England." Oh, and the media is supporting Obama so enthusiatically it is almost stunning.
Meanwhile, John McCain is not a great candidate. He's cranky, prone to going off message and unlike Obama, McCain has united his base.... they all hate him. His true base, the media, has gone over to his opponent.
So how the heck will McCain win? Simple, really:
Iraq:
McCain was both ballsy and right in pushin for the surge and staying the course behind it. Polls on Iraq lag with respect to reality. Luckily for McCain, polls will catch up to reality in time for this issue to matter for him. Obama was wrong on the surge and wrong on the timing. He can say he was right on the war, but it will ring hollow.
Energy:
The American public wants everything both ways, God love 'em. Can't blame the really, I want it both ways. Me too! I don't want us to drill anywhere and I want $1.00/gallon gas. But with gas at $4/gal (closer to $5/gal where I live) then the public will say drill, drill, drill! Sentiment is there now. McCain can call for drilling. Obama can't or won't.
Economy:
Obama is no Bill Clinton New Democrat. His policies really are the unreconstructed, pre-Clinton tax and spend variety policies. And while McCain is no Ronald Reagan, he will go after wasteful spending, and he will keep taxes low.
Forget all this nonsense about the "Republican brand" and Bush's unpopularity. This comes down to basics. McCain has three issues that the public cares deeply about, and he is on the right side in each case. He *just* has to make the case.