/ui-as-code

Design work on improving Dart's syntax for UI code

Primary LanguageDartBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

This repo tracks design work to try to extend Dart syntax to better support Flutter's style of UI code and similar code in other frameworks.

Usual caveats apply: the work is early, experimental, and subject to change. It might not pan out at all.

Docs

  • Motivation - A detailed breakdown of the current usability problems that we're trying to improve.

  • Constraints - Softer guiding principles to help get as much value as we can from a solution.

  • Research - Background information on other languages and frameworks and how they approach this. Prior art, inspiration, and pitfalls to avoid. JSX gets its own page.

  • Choices - High level survey of different approaches to handling conditional execution.

Proposals

  • Parameter Freedom - Loosen restrictions around positional, optional, and named parameters. Add rest parameters and a spread operator. Let API authors define flexible, expressive parameter lists that free callers from writing useless boilerplate.

  • Spread Collections - Allow the same ... spread syntax from Parameter Freedom to be used in list and map literals to insert multiple elements.