3 ms·
A noweb file is a sequence of chunks, which may appear in any order. Nuweb allows the programmer to present elements of the program in any desired order. Babel/
by feklar 10y ago
A noweb file is a sequence of chunks, which may appear in any order. Nuweb allows the programmer to present elements of the program in any desired order. Babel/org-mode allows for arbitrary order as well. Here's an example of Babel: http://www.howardism.org/Technical/LP/introduction.html http://www.howardism.org/Technical/LP/introduction.html
I'm not sure what LP implementations you have looked at it would have again helped any misunderstanding on my part if you had named said implementations that supposedly "dominate" the legacy of LP.
The jab was to point out how your argument returns false with such statements as "I speculate nobody as ever read a literate program in detail", and "(typeset) can't render inside just about any actual programming environment (editor or IDE) on this planet, and so we can't make changes to it while we work on the codebase" yet emacs exists and can render typeset in a split screen buffer. DrRacket also renders tex and any other typeset you want http://lists.racket-lang.org/users/archive/attachments/20120311/77279964/attachment-0001.png http://lists.racket-lang.org/users/archive/attachments/20120...
- dllthomas 10y agoIn my experience, when you say "literate programming", most people think perl POD or literate Haskell before CWEB and similar. This was certainly the case for me before making a point of reading what Knuth had actually written (some many years back). I think that's unfortunate, and I think it's valuable to educate people that there's more ideas there than present in some of these systems, and that there are systems supporting more. But I think there are more constructive ways than ascribing malfeasance or incompetence to what seems itself a useful (if not maximally useful) piece of education.
- akkartik 10y agoYeah, it's a couple of years old, and I too am a bit embarrassed when I read it now. It was a rant, read it as such. I find Literate Programming to be strictly an improvement over conventional programming. But "quasi-literate" systems to beautify programs aren't really Literate Programming, and their benefits are more questionable, since they pollute what the term means and keep people from realizing what Literate Programming can be. That's my frustration.
- akkartik 10y agoOk, I admit I hadn't considered Babel (though I was vaguely aware of it) when I looked at literate programming systems. I considered CWeb, Nuweb, Noweb, and Literate Haskell and a bunch of other semi-literate systems. I think my blind spot was to only consider approaches that were oblivious to tooling, things that I could open and read in any editor. That caused me to also miss LEO, as a commenter on the OP pointed out. I'm absolutely aware of LEO and like it, it just wasn't on my mind when writing this. I still find your approach of interpreting my statements as strictly logical entities to be pointless at best. For the last bloody time, I know that literate programs operate on hunks that can be reordered. I still don't understand how you can think I don't know that after reading the post. Also, was it not obvious that "nobody" meant "nobody else"? And yes, of course I can't be sure that none of the six billion people on the planet has ever read a literate program. (Though if they did and they didn't say anything about it, and they didn't push back against people building crappy quasi-literate systems, are they not like the proverbial falling tree in the forest with nobody to hear it?) It's a rant, dammit. Do you know what that is? :) I'm pissed off at quasi-literate systems that keep people from realizing what Literate Programming can be, and I'm sorry that wasn't clear to you from my writing. Are there any good example Babel programs you can recommend? I went looking and didn't find anything better/meatier than https://github.com/limist/literate-programming-examples https://github.com/limist/literate-programming-examples. I'm still skeptical that any sort of typesetting system is of much benefit; if I have to render in a split screen that's one less window for me to open code in, most likely I'll be trying to get by just reading un-rendered code. I think code should be WYSIWYG, because the slightest rendering step is overhead at the scale programmers deal with text. If I had to constantly render λ out of \lambda I'd never use it. But now that my terminal can render unicode sanely I use it all the time. Racket's Scribble system suffers the same drawback (Racket's ability to render Latex that you pointed out is utterly irrelevant in the context of this thread, without Scribble's ability to reorder code). Anyways, if you'd send me some example Babel programs I'd love to give it a try.