Bitcoin suffers from block times that are too long to ever make it completely practical in a face to face situation (like in a brick and mortar store). Not impossible mind you, just not practical. And I see no way that there could ever be a consensus to change block times. It would require fundamental changes to the difficulty calculations and conceivably the total coin supply. In my opinion a digital currency with faster block times will eventually succeed where bitcoin never can due to that limitation alone.
Bitcoin can and will have instant transactions via sidechains. It's only a matter of time.