Be minimal Be complete Have clear and simple semantics Be intuitive Be easy to memorize Lead to readable code