Language Design: Modern and Minimal

Published on 2019-11-05. Last updated on 2022-12-06
  1. A smaller language, not a bigger one
    • namespaces: types, terms, packages, fields, methods, labels
    • modifiers: keywords, annotations
    • nesting: packages, modules, static
    • members: fields, methods, properties
    • control flow: if-then-else, return, while, break, continue, loop, exceptions, throw, catch
    • constructors: primary, secondary
    • literals: octal number literals, class literals, …
  2. Correctness
  3. Fewer special-cases, not more
  4. Simplicity, not familiarity
  5. Higher Standards
    • simple to specify
    • simple to implement
    • simple to understand