- Avoid the introduction of language idioms that render previous language idioms obsolete.
- Limit the introduction of "nice-to-have" but otherwise unnecessary language features.
- Either enforce the rule or remove the restriction.
- Explicit is preferable to implicit.
- Hiding complexity behind overloaded language constructs isn't the ideal path to simplicity.
- Optimize the syntax for the reader, then the writer, and then the tooling.
- No exceptions (use
Result).
- No implicit type coercion (use explicit type conversion).
- No import cycles.
- No nulls (use
Maybe).
- No recursive functions (use iteration).
- No runtime evaluation before
main().
- No silent integer overflow (use wrapping operators).