help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Quote by Knuth


From: Christopher Dimech
Subject: Quote by Knuth
Date: Mon, 19 Jul 2021 10:05:28 +0200

> Sent: Monday, July 19, 2021 at 7:07 PM
> From: tomas@tuxteam.de
> To: help-gnu-emacs@gnu.org
> Subject: Re: Quote by Knuth
>
> On Mon, Jul 19, 2021 at 12:14:18AM +0200, Emanuel Berg via Users list for the 
> GNU Emacs text editor wrote:
> > Christopher Dimech wrote:
> > 
> > > Literate programming is an enhanced macro substitution
> > > package tuned to the task of rearranging source code.
> > 
> > We know what a macro is but what is literate programming
> > except it relies on macros? Does it rely to macros MORE than
> > everyday programming, including programming that uses macros,
> > or are the macros CLOSER to natural languages, maybe?
> 
> This discussion is so full of category errors that it's difficult
> to say anything relevant anymore. Let me pick two senses for
> the term "literate programming":
> 
> "Literate programming" is a pretty generic term. The most you
> can say about it is that it tries to combine "writing for humans"
> ("literature") and "writing for machines" ("programming"). Talking
> about macros in this context would be a category error [0] like
> saying "Colorless green ideas sleep furiously".
> 
> "Literate programming" as coined by Knuth (no, Mr. Dimech, you
> probably won't be interested -- for me, you can't overstate Knuth
> too much) is /technically/ based on WEB, which is a text substitution
> system, so can be regarded as a macro [1] system. If you look closely,
> TeX [2] and METAFONT [3] are "text substitution systems" a.k.a.
> macro [4] expanders.

PS: Thousands of other people have a doctorate in mathematics apart from Knuth. 

But I have read Knuth's papers and understand exactly his position on what
is literate programming.  He mas not combining "writing for humans"
("literature") and "writing for machines" (programming).  He wanted programming
to be like literature.  Thusly I am in disagreement with him.

Without Knuth others would have delved into the analysis of algorithms.  
Mostly it is about the development of tex everybody gets fired about.  
Without tex, few would have heard of him.  Still, mathematical typesetting
already existed before Knuth.  In actual fact, he got all his ideas from
the typesetting that already existed.  In "Mathematical Typography," Bulletin
of the American Mathematical Society, March 1979, Vol. 1, No. 2, 337-72; he 
stated
that his typesetting ideas originated from the Transactions of the American 
Mathematical
Society, which began publication in 1900; and some other journal (a dutch one 
if I remember). 

And, let us not deny it, with a lot of help from Guy Steele.
 
I remember him getting annoyed that the delta was ugly, and couldn't stand to 
write
papers using that symbol.  Now, he can't stand to read papers that still use it 
the
old delta. 

> It was the rage among some computer scientists of that time (1980s),
> and Donald Knuth seems to have been interested in them back then.
> 
> So yes, in the second, strict, sense macros do play a role. By the
> way, and to try to put things on-topic (hope? HAH!), noweb is also
> a text expansion machinery, inspired... yes, on Knuth's WEB. Go
> figure.

TeX has got people to focus on pretty printing, which is what typesetting is 
mainly
about.  But structural and semantic info are receiving greater and greater 
awareness
as opposed to formatting or displaying aspects.  LaTeX mended some of the 
problems with
TeX by turning a pretty printing system into a structured documentation system.

Today, I criticise how texinfo continues using Tex for its formatting engine, 
rather than
getting rewritten over either a LaTex engine or an improvement of it.

> Cheers
> 
> [0] https://en.wikipedia.org/wiki/Category_error
> [1] https://en.wikipedia.org/wiki/WEB
> [2] https://en.wikipedia.org/wiki/TeX
> [3] https://en.wikipedia.org/wiki/METAFONT
> 
>  - tomás
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]