Goals and Priorities

  • Ergonomics: code that is easy to read, understand and write
  • Familiarity: whenever a concept or notation is broadly in use from the world of programming languages or scientific notation, they should be reused if applicable.
  • Approachability. Simple things should be easy to do, complex things should be possible.
  • Expressiveness. The solution of a problem should be expressed
    • in the closest way to the original problem formulation
    • in a clear, natural, consice and intuitive way
  • Error Recovery: whenever an unexpected result is reached, it should be easy to understand what caused it, and how to recover from it.

Non-Goals

  • Migration from existing programming languages