Link to this year’s Scheme Workshop CFP

This year marks the twentieth anniversary of the workshop on Scheme and Functional Programming. The Scheme Workshop represents a diverse community of hackers, academics, and enthusiasts. The workshop offers a forum to share insights, experience, and technical developments of and within the Scheme family of programming languages. Rather than focus on a specific implementation or community, workshop attendees are united by an appreciation for succinct expression of novel ideas realized via programming. The submission deadline is May 24th, 2019, I hope you’ll help us celebrate by submitting a paper!

What is Scheme Workshop?

The Scheme Workshop website describes it as a…

Yearly meeting of programming language practitioners who share an aesthetic sense embodied by the Algorithmic Language Scheme: universality through minimalism, and flexibility through rigorous design.

Here’s my personal take. I love Scheme Workshop because it brings together a group of people with a truly unique perspective on programming. We represent a diverse background, but a shared vision: to distill insights about programming to their most economic presentation. We appreciate thoughtful, comprehensible solutions to challenging problems. We challenge ourselves to step outside of our boundaries and build fundamentally new paradigms for expressing ideas. Our mission is to build a community where we foster diversity, education, and support each other in pursuit of these ideals.

Scheme Workshop is unique in that it is:

  • Open to everyone who cares about Scheme-ish ideas. Instead of focusing on promoting the most cutting edge results, Scheme Workshop centers around thoughtful discussions relating to unique ideas that embody the ethos of Scheme. You don’t have to be an academic to attend; in fact, we have a rich history of participation from hobbyists and industrial attendees.

  • Non-archival and open access. We aim to support and foster unique ideas. Naturally, some of these ideas may grow into work eventually submitted to research conferences. Scheme Workshop provides a platform for researchers to get perspective from the Scheme community on their work at all stages of development. While we publish a technical report of submitted papers, submission to Scheme Workshop does not preclude subsequent submission to archival research conferences. In fact, we see Scheme Workshop as an ideal proving ground for groundbreaking research ideas. We hope that the discussions generated by the presentation of those ideas at Scheme Workshop will productively inform the authors’ scholarship.

  • Supportive of off-the-wall ideas. There are some ideas that are really interesting, kind of zany, and just inspire us in a deep way we can’t quite put our finger on. These ideas aren’t necessarily the kind that would fit well at a programming-oriented conference, but they might not be a good fit for research conferences either. Scheme Workshop is a perfect venue for these kinds of ideas. You’ll find like-minded people who enjoy challenging their perspectives on what programming even means.

  • A great place for your first paper. We place an emphasis on giving thoughtful, high-quality, and friendly reviews. We also have a strong appreciation for “half-baked” ideas. When I was a beginning PhD student, submitting to so-called top conferences often felt overwhelming. Scheme Workshop wants to help budding researchers develop their writing and presentation. Similarly, we realize that great ideas can come from people in industry, the open-source community, or the broader hobbyist community. We work hard to ensure that their ideas are taken seriously and give them the feedback they deserve.

What about Racket, Haskell, Clojure, SML, C++, etc…?

The language isn’t what’s important, it’s the idea. We want the workshop to be filled with exciting talks that broaden our horizons and challenge us to think about programming in a way we wouldn’t have before. I could easily imagine relevant papers dealing with template metaprogramming in C++, hygiene in OCaml, or domain-specific languages in Clojure.

If you think your idea might be relevant to the workshop, please don’t hesitate to contact Tom and myself. We’ll gladly give you an honest assessment of whether your idea would be a good fit. If not, we’ll do our best to direct you towards an appropriate venue for your ideas.

Who should submit?

Traditionally, submissions to Scheme Workshop come from those within or adjacent to academia. However, this is not a requirement. We welcome submissions from everyone who thinks they have something thoughtful to say to the Scheme community. This year, I want to specifically encourage submissions from:

  • Undergraduate or graduate students who are looking for practice writing papers on their own. It can be a challenge to develop your own sense of research style. Scheme Workshop is a great place to get feedback on your work in a low-stakes environment. Rather than judge the quality of your work against a high technical bar, we want to help build your ideas and presentation so that you can be proud of the way you’re articulating them.

  • People within the tech industry who have never written an academic paper before. Scheme Workshop leans a bit more academic than conferences such as RacketCon and StrangeLoop. However, this doesn’t mean we don’t value ideas from industry. If you’re in industry and would like to write a paper but aren’t sure how, please reach out to me: I’m happy to Skype with you and speak frankly about how the process works.

  • Seasoned Scheme wizards. Scheme Workshop has a long history of insightful talks from key contributors to the Scheme community. These community members shape our vision, and guide newcomers (such as myself!) by helping us understand the key principles that embody the Scheme community.

Some random Scheme Workshop papers I liked

There’s truly been some amazing work at Scheme Workshop over the years. I can’t hope to summarize it all here. Instead, I picked a random collection of papers to help you get an idea of the workshop’s direction.

  • A Self-Hosting Evaluator using HOAS, by Eli Barzilay. This paper discusses how–when you’re implementing a Scheme interpreter in Scheme–you can avoid implementing substitution by reflecting lambdas from the source language into the metalangauge (which still gives you means of abstracting, e.g., control structure). This is a neat idea that is the perfect size for Scheme Workshop.

  • Interaction-Safe State for the Web by Jay McCarthy and Shriram Krishnamurthi. This paper discusses new linguistic mechanisms for building abstractions for how we understand navigation within web applications. I think this idea nicely combines the practice of building web applications correctly with the linguistic abstraction mechanisms afforded by Scheme.

  • Well-typed programs can’t be blamed by Philip Wadler and Robby Findler. This paper from 2007 appears to be an earlier version of the highly influential 2009 ESOP paper of the same name.

  • Implementing Continuations Marks in JavaScript by John Clements, Ayswarya Sundaram, and David Herman. This paper discusses how continuation marks can be implemented in JavaScript. I see this as an exciting paper exploring a novel idea in a new space, and the authors mention some foundational challenges in scaling up to languages that allow tail calls with conventional “return”-style semantics.

  • A pattern matcher for miniKanren–or–How to get into trouble with CPS macros by Andy Keep, Michael Adams, Lindsey Kuper, Will Byrd, and Dan Friedman. This paper reveals an interesting ramification of writing macros in a CPS-based style alongside conditional macro expansion. They build a pattern matcher for the miniKanren programming language, demonstrating the issue along the way. I like that this paper reveals a foundational problem in macro engineering.

Help us build a community!

The goal of Scheme Workshop is to build a community that celebrates the fun in presenting beautifully minimal ideas. We often masquerade these ideas as programs. But we’re all bound together by the passion we share for articulating our ideas in an elegant way. Programming languages give us the ability to rapidly interact with our ideas, breaking and rebuilding our realization of those ideas at a pace never before seen by humanity. Scheme celebrates this opportunity by allowing us unprecedented flexibility in the way we articulate and execute these ideas.

I hope that you share my excitement. If you do, I sincerely hope you’ll consider submitting a paper to the twentieth workshop on Scheme and Functional Programming!