The handling of state manipulation in different programming languages varies widely. This talk surveys what the major paradigms are, the design tradeoffs and the issues they raise. Of special focus are Algol-like languages, Lisp-like languages and recent functional programming languages with state-manipulation. (This talk was originally given as the opening tutorial at the recent SIPL workshop in San Francisco.)