The idea is that there is a hierarchy between values, principles, and practices.
- values: what you want, what you like
- principles: general rules for achieving values
- practices: specific things to do
Start with values. Think what you really want, what is your goal? Value should inform the principles. Principles dictate the practices.
When following practices (or implementing features), know which value they serve.
For every feature in the language, know which value it serves
Don’t just make it elegant, or powerful. Know why for each design choice. —David Ungar