HackerTube

Literate Programming in the Large

Next Day Video3 HN recommenders · recommended in 4 months, 2014–2024
YouTube
talk · intermediate · evergreen · 2014–2024 on HN

Timothy Daly, an original author of the Axiom computer algebra system, talks about turning a large Common Lisp codebase into a literate program. He argues code should be written as readable manuals, and the talk was given at Write the Docs 2013.

HN recommends it in literate programming threads as a rare look at applying the idea to a huge, complex codebase, though some find it meandering.

8 comments from Hacker News

@elviejo2017-05 · in “Show HN: Legion, an as-simple-as-possible blockchain server written in Haskell”

"Programs should be written for people to read, and only incidentally for machines to execute." (Structure and Interpretation of Computer Programs" by Abelson and Sussman) The idea is that you write a "Book" and the program is extracted, from the book. Literate Programming Wikipedia: link A nice talk about it: ▶ this video

Recommends View on HN
@e12e2016-07 · in “Literate programming: presenting code in human order”

There's a (somewhat rambling, but interesting) talk on the effort to rewrite the lisp symbolic math system Axiom[a] as a literate program (spanning several books) - precisely in order to make it possible to refactor and maintain the code: "Literate Programming in the Large": ▶ this video [a] link

Recommends View on HN
@e12e2016-05 · in “Final “STEPS Toward the Reinvention of Programming” Paper [pdf]”

I think there are two sound approaches to communicating complex systems between humans (which is the main goal here, a computer might be a bit slow compiling 200M LOC - but the real problem is that no human can read that much code, let alone understand it): 1) Write documentation that is also code. That is the idea of literate programming. I recently came across: "Literate Programming in the Large": ▶ this video which is a bit of a wandering talk, but well worth watching: it talks about real, huge comolex systems, and how lp can help bring them back under control. 2) The other approach is to shift your perspective, so you don't have a complex solution to a compkex problem; but rather a few small and lightly connected straight forward solutions to simple problems. Now I doesn't matter if you're bad at communicating, because the ideas you try to convey are simple ideas. I think there are a few reason that STEPS appear to work: what we're doing with our complex software is simple stuff. If we know what we want to do (the hard part) doing so in a straightforward way becomes easy. If we can make hierarchies of abstraction and isolated sub-systems. Note that simple doesn't mean trivial. These solution often require quite a lot of theoretical education; but not an unreasonable amount.

Recommends View on HN
@e12e2016-05 · in “Literate programming: Two beefs with the classic version (2014)”

I found this talk about re-structuring and bringing back to life a 1.2 MLOC lisp codebase with classical LP interesting (it's a bit meandering, but INHO well worth a watch): "Literate Programming in the Large": ▶ this video The reorganization is still ongoing, as can been seen at: link

Recommends View on HN
@sparkie2014-04 · in “You Don't Read Code, You Explore It”

I like Tim Daly's viewpoint that we shouldn't just be writing code , but we should write manuals - giving high level overviews of our problems and specifying their implementation details inside the manuals. His talk "Literate Programming in the Large"[1] covers why. The example he gives in his talk is the Axiom algebra system[2], which was revised to use literate programming style - the source code, with usage examples, is contained entirely within the books. [1]: ▶ this video , [sldes]: link [2]: link

Recommends View on HN