←back to thread

140 points Tomte | 3 comments | | HN request time: 0.712s | source
1. kmstout ◴[] No.26290967[source]
Required reading for anyone who wants to extend Noweb to do new things is "The noweb Hacker's Guide":

http://www.literateprogramming.com/noweb_hacker.pdf

This came in handy when I wanted syntax highlighting in a woven document.

replies(1): >>26291470 #
2. froh ◴[] No.26291470[source]
noweb had two brilliant and one not so far sighted decision made.

The first plus was, as you point out, the extensibility of noweb, the pipeline architecture, which transforms the literate input into a documented plain text token stream, then does token stream transformation where you can insert your own transformations, like indexing, syntax highlighting, macro expansions if you wished, and then it reassembles the transformed token stream into output documents.

the other brilliant idea was to go for a minimalistic literate syntax and be language agnostic, for both the markup and the programming language.

This design decision was a focus on the absolute bare minimum, the gist of literate programming, and it still was open to all magic via user plug ins.

This decision also made noweb trivial to learn.

However. How noweb then chose to move to "icon" as scripting and extension language escapes me.

In my book, that was the design decision that killed it. And the rewrite to noweb3, lua based, remained in eternal 'beta'.

and LP as a whole always struggled with IDE / editor support.

literate programming as a discipline could resurrect with the advent of language server protocol. that might make literate programming accessible to contemporary IDEs again.

replies(1): >>26293716 #
3. thyrsus ◴[] No.26293716[source]
I enjoyed the ideas and clarity of icon, but I've never had a colleague who would invest the time in learning it. The bus factor is larger when the language barrier is high. The small community is reflected in icon's sparse ecosystem.