What is the Racket roadmap?

I don't think there's a development roadmap — or that there has ever really been a roadmap, except maybe in the early days. I'm even skeptical of the idea of "core dev team". There is such an entity as Racket management, and management has sometimes given its endorsement for specific directions, but that has been more of a post-hoc coordination and broadcasting role than a development-planning role.

So, that's why Matthias answers about things happening at Northeastern, and why I'll answer below about my own plans — because whatever "core dev team" is, we figure we're probably included. I worry that others might not answer on the grounds that they were never issued a "core team" badge, though, and that doesn't seem right.

Here are things on my radar in the near-ish (year or so) time scale:

  • Get the Racket branch of Chez Scheme merged to an official repo as supported by the current maintainers of Chez Scheme. I've had an agreement in principle with the Chez Scheme maintainers since last October, and much of the activity in the Racket (the part mirrored to racket/ChezScheme) in late 2022 was aimed at addressing their concerns. There has been movement recently — recent commits in cisco/ChezScheme were things the maintainers wanted to finish first — so maybe this will keep moving along. I'm not sure whether you'd put this in the category of Racket plans, though.

  • Refesh the third-party libraries that are used by racket/draw — and some other packages, but it's mostly the racket/draw layer that's tricky. We've gotten by for a while using old versions with a pile of Racket-specific patches, but it's obviously better to sync and get the benefits of modern versions. The work is not just figuring out how to compile and link and distribute for relevant platforms, but also sorting out what needs to change in Racket code that uses the libraries (e.g., where workarounds in that layer become counterproductive after upgrading). The drawing libraries are prominent enough that this seems like it counts as "Racket".

  • Reduce startup for things built on Racket. Maybe this takes the form of more work along the lines of raco demod, maybe it involves changes to the way the lower layers are put together (even starting from inside Chez Scheme?), or maybe it's a combination. I'm not sure what will happen, but it's a direction I expect to investigate. This seems clearly "Racket".

  • WebAssembly as a target. Not sure how this goes, either, but I did some work in this direction in the last year, and Adam Perlin did a lot more. Something might line up so that I see a place to contribute.

  • Rhombus. I don't think this an answer you're looking for, so I put it last. But as Matthias says, I have trouble drawing a distinction between my own work on Racket from (on one end) work on Chez Scheme or (on the other end) applications like Scribble, Rhombus, or a language for my PL class. I plan in terms of the stack, but I also aim to preserve and improve each layer as a coherent system on its own, whether that's Chez Scheme or Racket or Rhombus or even Zuo.

8 Likes