@ericsfraga @mstempl I learned about all three of #Emacs, #TeXLaTeX, and #literateprogramming at the same time in the late 1980s.

The first two always went together, and the third was a dream, a thing only the gods upon Mount Knuth-lympus could do.

Then, much later! Oh happy day! #OrgMode came along, and all three were baked into a warm, delicious pound cake. The tool that decisively allowed me to become a confident Emacs user was to make my config a literate Org document. Inspired by @sacha's example! Having it be a document, structured as an outline, with paragraphs of prose, was just qualitatively different from a monolithic lisp file.

Collapsing outline elements (1) allow fractal movement between a gestalt and detailed view, and (2) impose structure. There is no way to overstate how necessary are both of these for managing even as small a project as my ... HOLY SHIT, I JUST LOOKED, and my config is more than 1,800 lines of code!

Okay, point proved

I finally got around to prototyping a promising-seeming #LiterateProgramming technique that I had been procrastinating on for months, and I proved that it has a fundamental internal inconsistency and can not be made to work. 

Maybe this one could have used some more procrastination.

We Should Revisit Literate Programming in the Agent Era

Literate programming is the idea that code should be intermingled with prose such that an uninformed reader could read a code base as a narrative, and come away with an understanding of how it works and what it does. Although I have long been intrigued by this idea, and have found uses for it in a couple1 of different cases2, I have found that in practice literate programming turns into a chore of maintaining two parallel narratives: the code itself, and the prose. This has obviously limited its adoption.

silly business

An interesting paper on a little-studied niche of #LiterateProgramming :

Design and evaluation of a literate spreadsheet

Support for capturing and sharing the problem-solving knowledge associated with end-user-developed software is often lacking. The principles behind literate programming have been proposed as an approach to addressing this. To study the potential efficacy of these principles in the general end-user programming case, they were applied to spreadsheets, the most common end-user programming environment, to produce a literate spreadsheet design. The resulting artifact was then evaluated through a user study with a focus on the literate design's effect on user comprehension and modification performance in each of the data, formula and dependency layers of the spreadsheet model. Significant performance improvements were observed in the formula and dependency layers over the traditional spreadsheet design, suggesting that the literate form can help improve end-user problem-solving knowledge reuse.

https://annas-archive.gl/md5/725830bf81cee76ae89bd9e33d3cd77d
https://ieeexplore.ieee.org/document/6344472

[IEEE 2012 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) - Innsbruck, Austria (2012.09.30-2012.10.4)] 2012 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) - Design and evaluation of a literate spreadsheet - Anna’s Archive

Dinmore, Matthew IEEE pages 15-18, 2012 sep

New article published! It's on alternative ways of making software more understandable to humans without LLMs, including literate, visual, and natural language programming.

"Programming sucks. Code sucks. It's hard to read, hard to test, and hard to maintain. Only a handful of people can understand any particular software project. These are major problems. I'm here to explain how we can fix them."

https://gracefulliberty.com/articles/towards-understandable-software/

"We should embrace visual, literate, and natural language programming in order to better communicate our intentions with machines and with each other. ... Every form of software at every level of the software stack should become accessible to programmers and non-programmers alike."

#programming #VisualProgramming #LiterateProgramming #NLP

Towards Understandable Software

Programming sucks. Code sucks. It's hard to read, hard to test, and hard to maintain. Only a handful of people can understand any particular software project. These are major problems. I'm here to explain how we can fix them.

On that note, I'm interested in learning more about the ways literate programming is used today. It's not as widespread as I believe it should be, but I'm sure there are developments I'm missing.

I'm currently aware of Knuth's work and, separately, Entangled as a modern iteration of literate programming tooling. https://entangled.github.io

Feel free to share any thoughts or resources!

#programming #LiterateProgramming

Entangled

Using literate programming for most of my code these days. I'm trying to develop my skills in communicating effectively with humans and computers alike.

At the same time, I get to test my ReTangled literate programming tool and fix missing features.

https://codeberg.org/liberty/retangled

It also motivates me to finally implement stitching—the last component to bidirectionality. I haven't finished that component due to its complexity and the fact that it's not as important if you focus on literate documents. But it's essential for widespread adoption and tooling integration.

#programming #LiterateProgramming #ReTangled

retangled

A (soon-to-be) bi-directional literate programming tool inspired by Entangled

Codeberg.org

On Saturday I will be publishing my article about making software development more accessible without LLMs!

Some snippets:

"Layers of abstraction are meant to be predictable and reliable. This is not the case with LLMs. Instead, LLMs stochastically interpret their prompts and predict intentions. If LLMs are a layer of abstraction, they're an incredibly lossy one at best."

"We should embrace visual, literate, and natural language programming in order to better communicate our intentions with machines and with each other. Every form of software at every level of the software stack should become accessible to programmers and non-programmers alike."

#programming #LiterateProgramming #LLM #VisualProgramming #NLP

Gábor Melis introduces MGL-PAX, an "untangled" literate programming system for Common Lisp. An untangled system takes advantage from the flexibility of code order of a language to rely less on tangling tools.

http://quotenil.com/untangling-literate-programming.html

#LiterateProgramming #CommonLisp #documentation #lisp

Untangling Literate Programming

Whether you agree with, hate, or are turbulently navigating the transition of many teams to agent-mediated coding (I am considering the post from @anildash where he talks about #codeless, IE #LiterateProgramming or #LiterateDevelopment), Robert C Martin's book, Clean Code should be the bible in these times.

https://sfba.club/user/travisfw/comment/41400

https://www.goodreads.com/work/quotes/3779106-clean-code-a-handbook-of-agile-software-craftsmanship-robert-c-martin

#AIDev

Travis F W's comment on Clean Code - SFBA Book Club

Book Club of the SFBA.social community