It should be noted that no ethically-trained software engineer would ever consent to write a “DestroyBaghdad” procedure. Basic professional ethics would instead require him to write a “DestroyCity” procedure, to which “Baghdad” could be given as a parameter. —Nathaniel S. Borenstein
Or he would add a Destroy() method to the City class…