"[1] 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."
https://www.guppylake.com/~nsb/CSCW-ATOMICMAIL.txt