2025-05-04 at

Literate Programming Management

Literate programming ( checked : Knuth is still a prof at Stanford apparently ) : so I saw this Python project that tries to integrate literate programming with Markdown. Good. https://entangled.github.io 

Not so good : still feels a bit complicated, because it involves a daemon that tracks files and all you have to read so much text and install so many things to get a demo going. It's making me think about putting something together like Google Wave but for coding ( yes I know there are various collab editors already ) : 

  • Feature 1. "basically literate programming" : markdown with tagged code blocks (A) -> renders [ docs (B) + normalised static code (C) ] 
  • Feature 2. "in a browser editor" : three panes, A, B, C side by side. 
  • Feature 3. "render to SCM" : A,B,C all flush to disk in one repo, and (build + test + run + SCM : screen pops up to close the loop) 
  • Feature 4. A superset of Feature 1. is objectifying (A) within an agile project management tool ontology & workflow (can just imagine PivotalTracker for illustrative purposes). Which basically shrinks the complexity of documentation : the same tool used to describe spec, can be used to implement pseudo-code, then code-snippets, then proof of concepts, then finally the final A,B,C all within the same app. 

I've barely used VSCode but I imagine one could build an extension that does all this ... but if I try making this, I'd just throw it into a browser env for POC. LOL

( each feature could be : pluggable / BYO-code-enabled )

Hm. Might just try building it to use for myself first.

Discussion :

  • It was offered, this already does the job : https://code.visualstudio.com/docs/datascience/jupyter-notebooks
    • My comments
      • Nice. I guess then the missing concern is Feature 4. Where this actually links notebooks into production code under SCM. Is that also done?
      • I know what notebooks are - I've seen these 12 years ago. But it's not apparent how this could be used seamlessly, as the actual IDE, with CI/CD, for an entire CRUD app. ( which is extending "literate programming" from "programming a little app" to "programming a big app").
      • The original LP is Feature 1. ( Knuth's syntax, not MD ). And the intention is that you do the entire software development process this way. But nowadays we have more sophisticated workflows "CI/CD" etc. The point I have is just how to glue both together. Because it "is" the same problem.
  • It was offered, "You do not want to know that people has built an entire production setup just based on notebooks"
    • My comments
      • Because the wiring to do it properly does not exist. LP is for solving a comprehension/communication problem along the HCI axis, of the quality problem space which already contains ci/cd etc.
      • I think the missing function is : 
        • existing lit prog : git checkout [ lit prog, docs, source ] -> edit [ lit prog ] -> compose [ docs, source ] -> build, test [ docs, source ] -> git commit [ lit prog, docs, source ]
        • migration to lit prog : git checkout [ docs, source ] -> decompose [ lit prog, docs, source ] -> edit [ lit prog ] -> ( ditto )

No comments :

Post a Comment