Language Design: Modern and Minimal

Published on 2019-11-05.
  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
    • operators: unary operators, binary operators
    • magic methods on all types
    • collection literals, array syntax
    • instance-of-syntax, cast-syntax
    • types have consistent casing (uppercase)
  4. Simplicity, not familiarity
  5. Higher Standards
    • simple to specify
    • simple to implement
    • simple to understand