Racketfest is a time to learn & share what’s great about the Racket programming language and its philosophy of language-oriented programming. The next edition will be held on Saturday, August 17, 2019, right before ICFP.
Saturday, August 17, 2019 from to
Spielfeld, ground floor (
The Stadium), Skalitzerstrasse 85, 10997 Berlin, Germany
Language-Oriented Programming the Racket Way
The design of Racket reflects a philosophy where
everything is a program and domain concepts are reified as programming-language constructs. The programming language is extensible so that programmers can apply the same philosophy to solve their specific problems—and that’s language-oriented programming the Racket way. We’ll look at some examples of languages in Racket and the tools that Racket provides for building and extending languages.
Privacy-Hardened Languages in Racket
Writing secure programs is hard. While using memory-safe languages (such as Racket) eliminates some sources of security vulnerabilities (e.g., buffer overflows), it is still possible to leak data either explicitly (writing to a log file) or implicitly (crashing if the secret is larger than some fixed value). Faceted execution is a runtime monitor that enforces a strong security policy named information flow. In this talk, we discuss how we can layer faceted execution on top of Racket via the macro system and (if time allows) demonstrate a prototype.
Small, Elegant, Practical: The Benefits of a Minimal Approach
This talk makes a case for a focus on a small functional set of core programming language features, with powerful abstractions and a clear semantic model. Racket provides a particularly good example, but the general principles are applicable in many other contexts. They provide a framework for the effective expression of computation.
Normalization by evaluation is a technique for systematically converting an evaluator into a normalizer. A normalizer finds an expression’s normal form, in which all opportunities for computation have been taken. In addition to being a tool for understanding programming languages, normalization is used in the implementation of proof assistants and type checkers. I’ll demonstrate how to perform normalization by evaluation, reusing Racket’s own built-in evaluator, and then demonstrate the basics of making your own
#lang by wiring up the normalizer to create a normalizing version of Racket.
The Heresy Programming Language, or: Learning through Madness
We’ll look at the history, implementation, and development experience of one of the strangest language mashups perhaps yet devised: BASIC, Lisp, and pure functional programming. Learn how to implement language features in all the wrong ways, and how sometimes the only way to learn something is to write it yourself badly first, how not to treat your open-source contributors, and maybe even be the first to see the announcement of some exciting new features for the Heresy language.
Each of the speakers will be available to answer questions about their work. It’s your chance to see another person’s Racket workflow, find out what makes them tick (Racket-wise), and ask questions like
How did you do that?. Office Hours will be held in parallel; you can wander from speaker to speaker as you wish. Don’t be shy! This is your chance to get some expert-level Racket insight.
Offer a lightning talk (5–10 minutes). Talk about what you wish Racket had or what you find difficult. Identify libraries that could be improved. Tell us how you could help the community. If it’s about Racket, tell us!
Chat with the speakers and tutors, mingle, take a moment to reflect on what you’ve picked up. Organize dinner plans, and more.
Use the following link to register now:
An early-bird ticket costs 55 USD.
Space is limited! If you’d like to come, consider getting a ticket earlier rather than later. Starting August 1, normal registration begins; tickets will then cost 65 USD.
Racketfest borrows from the spirit of Racket, whose community aims to improve the world through programming. Racket started with the goal of introducing everyone to the wonderful world of program design, with a spirit of full inclusion and no emphasis on any specific group. Over time it has grown into a full-fledged professional community with a well-known reputation for helpfulness and openness on its on-line communication channels. We want that openness and friendliness to extend to Racketfest.
For this to happen, Racketfest needs to be a space that where everyone can participate without fear of personal harassment. Harassment is understood here as unwelcome or hostile behavior, which, in turn, we understand as behavior that focuses on people instead of ideas. The ACM’s anti-harassment policy lists some unacceptable behaviors. Responses such as
only teasing, or being
playful, are unacceptable.
In short, be professional and kind. We’re all here to learn and share.
Anyone witnessing or subject to unacceptable behavior should notify the Racketfest organizer (Jesse Alama).
If a Racketfest participant engages in harassing behavior, the Racketfest organizer may take any action they deem appropriate, ranging from a verbal warning to expulsion (without refund) from the conference.
(The wording of this policy is derived, with permission & thanks, from that of RacketCon, which in turn was derived from the SNAPL conference.)
Racketfest pairs well with BOB, taking place in Berlin a few days after Racketfest () at Scandic Hotel Potsdamer Platz (Gabriele-Tergit-Promenade 19, 10963 Berlin) BOB asks:
What happens when we use what’s best for a change?. Come find out!
Racketfest takes place one day before the start of the 2019 International Conference on Functional Programming (ICFP) and its wealth of workshops. NB: Racketfest is not an official ICFP workshop or subconference! This has two important consequences:
Racketfest needs your help! If you can’t come to the event, you can still show your support by becoming a sponsor:
All sponsors will be credited here (unless you wish to remain anonymous).
If you wish to sponsor a diversity ticket or two, please write to the Racketfest organizer (Jesse Alama).