Saturday’s Grace Workshop made some good progress – closing some open issues, and making a good start for the next stage of the language design.
The main issues we resolved were:
- Selecting a design for pattern matching based on blocks (aka “lambda-matching” )
- No shadowing of names by lexically nested names
- No nested methods, that is, no methods inside methods without an intervening object
For matching, we will need to finalise the details, both of the pattern syntax, and the underlying protocol. But with Scala, Newspeak, and F# as examples here we hope this will be mostly straightforward.
The next stage of the language design must tackle the really big issues:
- Nested objects & classes? (like gBeta? Newspeak?)
- Structural vs nominal type systems
- Integration of statically and dynamically typed code (like C#? Typed Racket?)
- Module system — (like LOOJ? or Newspeak?)
- Relationship between language design and programming environment design
We’ve started discussions on all of these topics: but will have some way to go before we’re done.
Thanks again to all who came: Dave Ungar, Erik Ernst, Gilad Bracha, Jan-Willem Maessen. We really appreciate appreciate all the thoughts, feedback, suggestions, and that you’ve taken time to come and think about Grace.