Update on my Racket exit

Updated Friday, Apr 25, 2025

Figure 1: Blasting off from planet Racket to other planets. Thanks ChatGPT.

Figure 1: Blasting off from planet Racket to other planets. Thanks ChatGPT.

It’s been almost two years since I took a public step away from the Racket diaspora. I’m writing this post to air out how my Racket projects have gone since then. I believe, as of now, I have zero Racket codebases to maintain — hooray!

It’s important to me to demonstrate how one should do with old codebases. Let’s reaffirm the importance of handing off inactive projects instead of holding on to them. Kill your darlings. Let your babies fly from the nest. Whatever you gotta say, it’s important to let things flourish without holding on unduly so. Embrace growth with at least a modicum chaos. That’s the path. Something beautiful will grow.

§Steps to hand off a Racket project

In case anybody wanted to know what I do when I hand off here is my Racket migration checklist. Only step 4 is Racket specific.

  1. Find an interested future maintainer.
  2. Create a GitHub org and transfer the repository into the org.
  3. Add your future maintainer as a GitHub organization owner.
  4. Update pkgs.racket-lang.org entries with
    1. An additional author email linked to the future maintainer’s pkgs.racket-lang.org account
    2. Update the repository path because presumably, GitHub will eventually stop redirecting after a repository move.
  5. Communicate and clarify any further questions for the new maintainer as they arise. Or not and disappear. Long term projects success hinges on providing the easiest possible hand-off and continued support, as needed.

§toml-racket was rehomed

It turned out my revival of Greg’s toml-racket1 was used by more than my lonesome. Go figure: TOML is sweet and simple. The revival codebase touts combined encoding and decoding support.

Thanks to Benjamin Yeung for adopting toml-racket. 🙇

§tinybasic.rkt was rehomed

Previously.

I was on the fence with archiving the tinybasic.rkt repository; given the 10+ stars for this boutique programming language that exists within a niche community, it seemed like a raw deal for these passionate individuals.

A random GitHub Pull Request appeared! I’m not set up anymore to QA and review Racket related patches so it made sense to offer up the project to interested users. I did what I believe every author should do in this situation: immediately make a ticket asking for volunteers to take on the project. Thankfully the s-expressions aligned and a maintainer appeared!

Big thanks to Jörgen Brandt for taking on maintainership of tinybasic. 🙇

§Other Racket packages removed from pkgs.racket-lang.org

There were other packages with ostensibly no users (save for myself). Since I was no longer using the packages, I deleted them from the Racket Catalog and then archived the GitHub repositories.

The removed packages include (though, I can’t recollect if this list is exhaustive or not):

4chdl
4chan media downloader. 4chan is dead anyways so this is not useful to anyone, anymore.
ssh-hack
a way to play nethack online. I rewrote this tool in Python and it’s been easier to deploy.
tool
a logging and general purpose CLI utility framework thingy.

§Admiring old darlings, experiences

It hit me how much stuff that I wrote in Racket. A lot. Loads of stuff.

The first Racket code that I can find is from circa 2015. It was a command line tool to upload text to the sprunge.us PasteBin website. It was already pretty decent code honestly. Passable as any beginner dev in the community.

And here’s a collection of my favorite Racket experiments:

  1. Language implementations - Subby, TinyBasic, brainfuck, a doctest language embedded in Markdown used to test API calls.
  2. Network protocol support to query Minecraft, ET:QW, RCON-enabled game servers, Mumble VoIP servers, so on
  3. Shredding the competition in coding competitions using Racket. It’s a fun party trick, but won’t land you a job, by the way.

It’s not exhaustive. I didn’t list off any GUI, Web, IRC, command line utility things, or anything with excessive macro use. Those activities were seldom fun — too tedious. Especially anything web related.

Bogdanp has been working diligently on streamlining the web story, so it’s been a lot nicer with his batteries-included Racket APIs.

§Fin

Figure 2: On to the next thing. Thanks ChatGPT.

Figure 2: On to the next thing. Thanks ChatGPT.

It’s lovely to be done with these projects and redirecting focus to the next endeavor.

I’ve been writing a great deal of Python, Bash, Awk, Perl 5 for my own consumption and it’s kept my focus free for other activity such as biking or cooking.

For another time: let’s talk about incentives in software development. This is the cornerstone of anything coding, not the language. Onboard, encourage, and reward, or not, at your project’s peril.

If you don’t have community (including yourself) engaged, the code is effectively dead no matter the language.