It also heavily depends on the type of tourism.
Amsterdam had cruise ships come there, dump tourists that would swarm the city and return to the ship for lunch/dinner. The tourists added almost nothing to the cities economy, while the city did have to deal with them.
Off course other towns and cities benefit, but the question is should a city accomodate it all, should there be a limit and how to enforce the limit.
But I can see that with the industrialization of everything, industrialised tourism is annoying.
The stated purpose of the cruise lines is to capture as much of the tourist dollars as possible by compelling the passengers to spend nearly all their money onboard. When port calls are made the sailing times are engineered to prevent the passengers from going off and doing their own thing.
One thing I think they should do is follow Svalbard and limit the number of passengers allowed on a ship. Svalbard put it at 200 because it is a very remote archipelago with limited rescue facilities, but even in more populated areas it should be many fewer than the largest cruise ships currently carry. Had Costa Condordia sunk in deeper waters the death toll would have been massive because there was no way thousands of people could have gotten off before it rolled over and sank.
Specifically I think one thing Amsterdam and other port cities could do is require minimum lengths of a calling in port. For instance the ship has to be in port for at least 24 hours and the passengers must be able to disembark and reembark at any time. This would ensure that the passangers don’t feel pressure to stay near the ship or all bum-rush the city by hoarding off and back on again all at once.
Of course the cruise lines would start howling if these kinds of regulations started coming down as they would ruin their business model of cramming thousands passengers into floating hotels, keeping them there, and draining all their money.