March 23, 2019, was jam-packed with Racket goodness. It was the first edition of Racketfest, a new conference devoted to spreading the good news about Racket and offering a place for Racket fans to share their skills, meet one another, and get to know Racket better.

(To cut to the chase: if you want the videos, go here.)

It went something like this:

We learned about Shriram’s (yes, that Shriram) recent research into syntactic sugar, that language sweetener that looks nice but is actually just a simple repackaging of more fundamental (albeit less sweet) constructs in the language. Shriram is interested, specifically, in what he calls re-sugaring: taking de-sweetened expressions and trying to express them back in the original sweet language.

Michael Sperber—functional programmer, teacher and trainer extraordinaire—told us about how we need to remember that what we, as programmers inclined toward cool stuff like Structure and Interpretation of Computer Programs, is not necessarily going to work when we teach programming to others. He talked about his own teaching language, used both in his introductory programming books and in the professional training he offers in his company.

Ryan talked about a tool he made—taking the form of a Racket #lang , naturally—for helping him to learn the Czech language. (Ryan lives in Prague these days.) He offered some insights into using Racket’s wickedly awesome syntax-parse library and the Racket philosophy of language-making.

Panicz asked us to think about the long-standing discussions about two programming paradigms in focus these days: functional programming versus object-oriented programming. He asked us to think about how we even understand the terms. A very thoughtful talk accompanied by some awesome graphics.

Lunch

Although there was, officially, no lunch scheduled, we split up and individually, or in groups, explored the vibrant Berlin neighborhood where Spielfeld, the conference venue, is located. It seems to have worked out (everyone was back for the afternoon!).

Tutorials

In the afternoon, we split up into three groups doing tutorials in parallel. There were three groups:

Distributed computing

Jörgen Brandt taught about places, which represent Racket’s approach to distributed computing.

Contracts

Paolo Matos did a deep dive into contracts, a way to enforce that your code works as intended.

#lang

I gave a basic tutorial about how to make a #lang , Racket’s mechanism for making languages.

Open mic

We closed with a jam session where various participants came to the stage to demonstrate some of their in-progress work.

Afterwards

Some attendees understandably had to go home or leave a bit earlier, but a number of us went out to an outdoor restaurant and, later, to a nice bar. Much fun was had.