Feedback sought: Optional Braces

Thank you all for your inputs and in particular the surveys. Amazing that we can turn a hot and opinioned debate into something that approaches empirical language design! This was actually very productive and informative.

The hardest decision was whether to go with with or remain with :. In the end I think we do not have enough arguments to switch. with is theoretically cleaner, but : seems to be more legible and appealing in practice.

I identified several other action items.

  • Try to nudge the ecosystem towards an indent margin of 3 spaces instead of 2. To make a start I have reformatted the Scala 3 reference pages with this margin.

  • Look into a tightening of the layout rules. This will have to come over time. For 3.0, the focus should be on compatibility with legacy Scala-2 code that is sometimes indented in quite peculiar ways. After all, we explicitly do not want to have a “mode switch” that turns indentation on. Indentation is significant even inside braces. So we have to be very lenient to accept a large variety of layouts for now.

  • Replace the -Yindent-colons scheme with new layout rules that allow to omit braces around closure arguments and after operators at the end of a line. This is also something for after 3.0.

Meanwhile, happy xmas to everyone!

8 Likes