p0143_decision.md 2.2 KB

Decision for: Numeric literals

Proposal accepted on 2020-09-15

Affirming:

Abstaining:

Open questions

Placement restrictions of digit separators:

  • The core team had consensus for the proposed restricted placement rules.

Use _ or ' as the digit separator character:

  • The core team deferred this decision to the painter.
  • The painter selected _.

Rationale

The proposal provides a syntax that is sufficiently close to that used both by C++ and many other languages to be very familiar. However, it selects a reasonably minimal subset of the syntaxes. This minimal approach provides benefits directly in line with both the simplicity and readability goals of Carbon:

  • Reduces unnecessary choices for programmers.
  • Simplifies the syntax rules of the language.
  • Improves consistency of written Carbon code.

That said, it still provides sufficient variations to address important use cases for the goal of not leaving room for a lower level language:

  • Hexadecimal and binary integer literals.
  • Scientific notation floating point literals.
  • Hexadecimal (scientific) floating point literals.

Painter rationale

The primary aesthetic benefit of ' to the painter is consistency with C++. However, its rare usage in C++ at this point reduces this advantage to a very small one, while there is broad convergence amongst other languages around _. The choice here has no risk of significant meaning or building up patterns of reading for users that might be disrupted by the change, and so it seems reasonable to simply converge with other languages to end up in the less surprising and more conventional syntax space.