Let's not rely on hardware improvements
All fair points and the "optimize last if you need to" approach is sensible, but I fear that it can also lead to the sorts of attitudes that we see with a lot of modern software, for example in the web field we often hear voices in the Rails community shouting: "Scaling? Optimising? Pah - just chuck more hardware at it, it's cheap".
As the first commenter said, excessive optimisation *is* often unnecessary, but there's really neither need nor excuse for sloppy code, and there's no need for laziness in utilising the resources available just because more resources are cheap. It's the same attitude which fuels many environmental problems we face - "use it up, chuck it away, buy another one. Who cares? It's cheap!".
Let's not strangle ourselves with unnecessary constraints, but let's not use that as an excuse to ignore economy and efficiency.