Talk on Grace at Microsoft Research

After the Grace workshop, James went up to Seattle and talked about Grace to the Research in Software Engineering group at Microsoft Research.

They’re working on a range of cool programming tools, from TouchStudio (simple programming on a Windows phone) to the big range of tools at http://rise4fun.com/.

Microsoft record most of their talks, and make them available on the web. The video and audio of James’s talk is here in various formats. The talk gives are reasonably high level overview of Grace. Be aware that the handwaving doesn’t really stop, but it certainly decreases in intensity after about the first twenty minutes! There are some good questions from people at the end.

Thanks to Manuel Fandrich & Rustan Leino for hosting James at Microsoft.

Saturday’s Grace Workshop

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.

Grace specification 0.1

The Grace language specification v0.1 is now available.

Most of the changes since 0.095 are minor/detail changes. Our goal for 0.1 was to focus on the sequential core and object model: we think we’ve done that, although especially the details of inheritance and pattern matching mechanisms remain to be worked out. Our plan now is to work towards 0.2 hopefully around the end of July, making progress on types/modules/encapsulation – we hope the workshop tomorrow will help us to plan the next phase of the project.

As ever, we’d very much appreciate comments on what is in the spec, what isn’t in the spec, and what we might do next.