Zest: a programming language for malleable and legible systems
7 comments
·March 16, 2025null
noelwelsh
I could not tell if this is a hobby project, or the product of a research lab. Does anyone know? Very cool stuff. It would benefit from some institutional support.
returningfory2
The person behind Zest runs an interesting blog/work journal, I recommend subscribing [1]. I could be wrong, but my understanding is that they don't have a full-time job. Instead they do some amount of consulting, and then spend most of their time and intellectual energy working on their projects. Which is pretty cool I think.
Ohkay
The docs have test cases embedded in the markdown. This is a pretty cool use of markdown. I have started doing something similar with markdown in my project. I wonder if other programming languages have done this too.
returningfory2
Rust has this, and it just makes so much sense. Especially when you write a library in which the basic demo is also the basic unit test you want to make. Instead of writing a specific unit test that's hidden in source code, you just embed it in the docs and then you (a) don't have code duplication and (b) have verification your documentation's code samples are actually correct.
oulipo
Well, it's what's called "literate programming"
ModernMech
Other programming languages this author has worked on:
Droplet: "Datalog in time and space" - https://github.com/jamii/droplet
Eve: "Datalog meets Smalltalk" - https://witheve.com
Imp: "An Eve for people who build Eves" - https://github.com/jamii/imp
These are some pretty "out there" languages with a high strangeness budget, so I'd expect the same of Zest.
I like the idea of exploring the interaction models that Eve provided but instead with a "well-trodden ground of a mostly-familiar imperative language", but I'm curious how that will work since the interactions in Eve were made possible due to the datalog-like language design. So my initial question is how "mostly-familiar" Zest really is; what imperative concessions does the language make to gain which interactions?
With Eve, a lot was gained just by keeping a database of compiler artefacts that would normally be thrown away. This allowed for a degree of "provenance" tracking, where you can ask the compiler how a runtime value came to be.
I think there's an interesting middle ground where maybe we can get a bunch of the things in Eve that were nice, but maybe tone down the weirdness budget to lower the learning curve. Maybe that's Zest? Will be interesting to follow this project.