Show HN: A Lisp where each function call runs a Docker container

500+ tiny runs to get 6—crowd calls it ridiculous, beautiful, a nightmare

TLDR: A dev made a version of Lisp where every tiny step runs in its own Docker container, leading to 500+ spins just to get the number 6. The community split between delight at the “monstrous beauty” and groans over absurd inefficiency, debating whether it’s art, science, or just glorious chaos.

Meet Docker Lisp: a stunt where every little step of a program spins up its own container. Translation for non-nerds: imagine putting each word of a sentence into its own shipping box just to say “hello.” The internet didn’t just watch—it roasted, cheered, and meme’d it into legend. One stunned commenter flagged a GitHub run: 500+ containers to compute factorial of 3 (that’s just the number 6). Cue the chorus: “ridiculous and I love it,” “this is a nightmare XD,” and the inevitable “why are we like this?” energy.

The vibe split into two camps: chaos lovers swooning over its monstrous beauty and pragmatists clutching pearls over the carbon footprint of doing math by heavy machinery. One hot take compared it to asking a cutting-edge AI to do a simple math problem—wildly inefficient but weirdly poetic. Fans praised the seriousness of the experiment: proper tests, continuous integration (robotic checkups), and a trace mode so you can watch every tiny call like a reality show. Skeptics asked if there’s any practical spark here, while romantics replied: the point is pushing “What if?” to its limit.

Between jokes about “container per thought” and folks live-watching docker stats like heart monitors, this feels less like software and more like performance art. Absurd? Yes. Beautiful? Also yes. Useful? TBD—and that’s the drama.

Key Points

  • Docker Lisp evaluates Lisp expressions by running each function call within a Docker container.
  • The only requirement to use Docker Lisp is having Docker installed.
  • Setup involves building base images and built-in images, then running a test suite.
  • Users can evaluate expressions with an eval runner, enable tracing with --trace, and monitor execution via docker stats and docker events.
  • Programs are authored as Dockerfiles using the docker-lisp/eval image, built with provided scripts, and run using a dedicated run script.

Hottest takes

"500+ container invocations to compute factorial(3)" — teaearlgraycold
"This is the most ridiculous thing I've ever seen and I love it." — piloto_ciego
"This is a nightmare XD" — andreamonaco
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.