Visitors to Victoria for Winter 2015

Early this month we were pleased to welcome a couple of visitors to Wellington working on Grace projects.

Satu Itaniemi         Tom Dupisre

Satu Itaniemi is joining us from Finland via the Friedrich-Alexander University of Erlangen-Nürnberg to write her Master’s thesis on DSL-based frameworks for accounting systems.

Tom Dupisre is visiting us for three months from the École Polytechnique de l’Université de Nantes to work on Grace benchmarks and libraries.

Grace at ECOOP

The European Conference on Object-Oriented Programming starts tomorrow, and Grace people will be there.

On Wednesday, the first day of the full conference, we’ll present the technical paper Graceful Dialects by Michael Homer et al describes how Grace supports dialects using lexical scope, pluggable checkers, and Grace’s flexible syntax, but without requiring macros or depending on types.

At workshops held earlier in the week, Tim Jones will talk about TinygraceA Rational Reconstruction of the Escrow Example — rewriting everything in Grace always being perfectly rational — both at the Formal Techniques for Java-like Languages workshop on Monday,

And at IWACO on Tuesday, James will present On Owners as Accessors with some examples, at least, tending towards Grace.

The Ackermann Function

Apropos of nothing, here’s a Grace version of Ackermann’s Function inspired by Sam Tobin-Hochstadt’s Racket example:

One interesting thing to note is that the condition after elseif is in {braces}, while the conditions after if is in (parens). This makes logical sense — because the first condition is always evaluated — but is of course inconsistent with every other condition.  (Apologies for the fixed-width font.)

Code as Literature?

Peter Seibel’s blog post Code is not Literature has generated some discussion in our department. I certainly agree with a lot of what Peter writes — when I used to coordinate our final year design patterns course, students would present examples of patterns culled from the Interweb. (Google code search was great until it was switched off). Let’s just say even finding patterns clearly expressed in code was often a bit of a struggle. So I’m quite sympathetic to Peter’s point that “most real code” isn’t really worth reading.

On the other hand, I still like Richard Gabriel’s idea of the “Poetry of Programming”. Donald Knuth’s Tex and Metafont have been published as hardbacks; Kernighan & Plauger’s Software Tools & the John Lions’ Unix book as paperbacks. One of the things I like about Smalltalk and Self was the way the IDE made code easy to read, and that much of the system code had obviously been written to be read. Now Github & SourceForge mean there are millions of lines of code around that can be read anytime: but that still doesn’t make it literature.

I guess this is because literature doesn’t happen by accident. Most writing isn’t literature — this blog post, my university’s assessment handbook, company procedure handbooks or advertising brochures may be grammatically correct and be worth reading for the content they contain: but they aren’t worth reading just for the sake of it. So we shouldn’t be surprised that most of the code isn’t literature: it doesn’t need to be.

What’s this to do with Grace? Two things, I think. First, we hope that Grace is a good language not just for writing code day-to-day, but also for code that aspires to be literature. And second, we hope that at least some of the code we write in Grace, while it may not rise to literature’s exhaled state, will at least be worth reading.