A point that I always thought was valid, which some have made here, was, "Why didn't they demonstrate it on a nearby island?" There were any number of islands with few or no inhabitants around the Japanese archipelago. They could have evacuated an island and nuked it.
Apparently Truman considered this but rejected it, because there was a possibility that the bomb would fail. A failed demonstration would have set back the efforts to obtain a surrender, and of course the U.S. only had produced a handful of bombs. A successful demonstration followed by an unsuccessful drop on a city would have been a big problem as the bombs were in such short supply.
As far as I can tell, in fact, there were only four: one was rejected during the design stage as being unworkable, and one was detonated as a test, leaving only two for the war effort. If one was used on an empty island, and then the second (which used a different design) failed to detonate, it would probably have taken months to make a new one.
That being said, I still think this is the best objection. For the sake of being able to later make a moral defense, the U.S. should have blown up a deserted island first even though it probably would not have convinced the Japanese. That way they would be able to say later, "We tried to warn them and they didn't listen." And they probably should have given Japan more time to decide on surrender after the first bombing. However, the combined psychological effect of back-to-back bombings, combined with the lack of knowledge of how many A-Bombs the U.S. had left, may have been a deciding factor.