diff --git a/docs/project/principles/README.md b/docs/project/principles/README.md new file mode 100644 index 000000000000..9e6bcd2a29e8 --- /dev/null +++ b/docs/project/principles/README.md @@ -0,0 +1,22 @@ +# Principles + + + +Some language [goals](../goals.md) will have widely-applicable, high-impact, and +sometimes non-obvious corollaries. We collect concrete language design +principles in this directory as a way to document and clarify these. Principles +clarify, but do not supersede, goals and priorities. Principles should be used +as a tool in making decisions, and to clarify to contributors how descisions are +expected to be made. + +A key difference between a principle and the design of a language feature is +that a principle should inform multiple designs, whereas a feature's design is +typically more focused on achieving a specific goal or set of goals. The +principle can help acheive consistency across those multiple designs. + +Note that these principles seek to establish both the approaches the project +wants to pursue, as well as those we want to exclude.