2. Manifesto

Programming languages today are full of features, and there is a trend toward brevity. Brevity is highly expressive, for an expert who understands the notation. However, for a new learner or a casual user, brevity promotes unreadable code.

2.1. Principles of Design

  • Prefer keywords over punctuation

  • Good error messages

  • Avoid implicit behaviour

  • Explicit declarations

  • Single meaning per keyword/operator

  • Principle of least surprise

  • Easy lookup

2.1.1. Prefer keywords over punctuation

Punctuation is important, but it should be used sparingly.

2.1.2. Good error messages

Error messages should explain what is wrong, with suggestions of ways to correct the problem.

2.1.3. Avoid implicit behaviour

There will be no hidden, implicit, or automatic calls made to code that is not expressly visible in the source.

2.1.4. Explicit declarations

Everything is declared, and identifiers from modules are always qualified.

2.1.5. Single meaning per keyword/operator

To the greatest reasonable extent, keywords and operators only have one meaning.

2.1.6. Principle of least surprise

This one is hard to quantify, but it’s good.

2.1.7. Easy lookup

By using keywords instead of punctuation, and by using explicit declarations, it is easy to look up unknown things in the documentation.