I made a thing: <https://www.colbyrussell.com/LP/debut/plain.txt.htm>
Ostensibly it's implementation of a (really crummy) assembler, but the true purpose is to showcase a (proposed) new form of media—an alternative take on literate programming that exploits the natural features of the Web browser instead of requiring special purpose tools and is inspired by the pragmatics of the design of Markdown.
Blog post forthcoming.
@paul @akkartik having said that, I don't offer this as a great example of a literate program; most of it is uncommented. I just wanted to get this out there, because I've had this idea for a while and wanted to publish it. It's taken too long, and I'm kind of sick of it by now (a lesson—what the real takeaway of this experiment should be—?)
This (esp. "the biggest challenge is just finding a starting point") matches the lessons I've internalized over the last ~3 years. My main takeaways whether you're doing proper LP or not, is that just like a book you:
1. need to provide an obvious place to start, and
2. should write code top-down (see also <https://www.teamten.com/lawrence/programming/write-code-top-down.html>)
@paul @akkartik imagine being given the manuscript for a book and then having to suss out (e.g. by guessing) which chapter to start with. This is the ordinary state of affairs in programming, and it's pretty nuts that we haven't done anything about it by now in the mainstream.
The closest we get are *maybe* some attempts in the README, but more often than not it comes down to conventions for the particular language/ecosystem that you're expected to know.
@colby Thanks for the link! I might well have missed it.
I agree with 1, but not 2. Top-down and bottom-up are not the only two options here. I currently present Mu syntax in a combination of top-down and bottom-up: https://github.com/akkartik/mu/blob/main/mu.md There are infinite ways to "tour" a system.
Step-wise refinement is one powerful option that seems easy to conflate with top-down and so forget. It has some commonality with Christopher Alexander's ideas about unfolding: https://davesresearch.medium.com/weeknotes-6-nature-of-order-book-two-the-process-of-creating-life-9e55ba6b0ca5
@colby I really like how dhosek calls out modularization as a complicating factor in controlling a narrative. These days a compiler cache is a great way to autogenerate headers without giving up the benefits of incremental compilation. Nonlinear organization can be nice but is a *lot* of work. It helps to avoid it as much as possible.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!