4 ms·
Literate programming is going to feel far more powerful when we expand the definition to include: - Smalltalk-ish things like writing suites of custom viewers
by sritchie 5y ago
Literate programming is going to feel far more powerful when we expand the definition to include:
- Smalltalk-ish things like writing suites of custom viewers for various types,
- demos and examples in-line inside of a library
- multiple stories about the same piece of code, but all with the ability to IMPORT the story as a library
I've been writing sicmutils[0] as a "literate library"; see the automatic differentiation implementation as an example[1].
A talk I gave yesterday at ELS[2] demos a much more powerful host that uses Nextjournal's Clerk[3] to power physics animations, TeX rendering etc, but all derived from a piece of Clojure source that you can pull in as a library, ignoring all of these presentation effects.
Code should perform itself, and it would be great if when people thought "LP" they imagined the full range of media through which that performance could happen.
[0] sicmutils: https://github.com/sicmutils/sicmutils https://github.com/sicmutils/sicmutils
[1] autodiff namespace: https://github.com/sicmutils/sicmutils/blob/main/src/sicmutils/differential.cljc#L21 https://github.com/sicmutils/sicmutils/blob/main/src/sicmuti...
[2] Talk code: https://github.com/sritchie/programming-2022 https://github.com/sritchie/programming-2022
[3] Clerk: https://github.com/nextjournal/clerk https://github.com/nextjournal/clerk
- WorldMaker 5y agoDon't forget to include "notebooks" in the expanded view of literate programming. The amount of code being written in Jupyter notebooks alone today in practice dwarves much of literate programming in preceding years.