Grace Workshops

We’ve always claimed that Grace’s design would be provisional, especially early on, and that we were after feedback on the design, both here on the blog, and at workshops or events we were attending.

Last weekend we held couple of workshops in Darmstadt and London. Participating were Jonathan Aldrich, Gavin Bierman, Sophia Drossopoulou, Susan Eisenbach, Erik Ernst, Dick Gabriel, Theo D’Hondt, Carsten Kolassa, Michael Kölling, Dirk Riehle, Lawrence Tratt, Andrew Black & James Noble. They were workshops, work was done, which will result in an updated spec soon. The largest changes we’re contemplating are:

  • Requiring curly braces for all blocks. Because braces delay evaluation, they are semantically as well as syntactically important. Requiring braces will make this clearer to novices. Code layout must still be consistent with bracketing, and layout will still be used to elide semicolons. This means that Grace code will look more like Scala and Java and less like Python or Haskell.
  • Operator precedence for arithmetic operators only (+,-,*,/). All other operators will have no precedence, working left-to-right. Operators without precedence will still require explicit parentheses.
  • A streamlined class declaration and initialisation protocol that will soon be a topic of a blog post.

plus a range of minor changes, generally simplifying Grace by choosing just one option where we had been considering allowing programmers’ choices. Especially for novices, every option adds complexity to a language and makes it harder to learn, so we’re trying to purge unnecessary options from the design.