On 19/11/11 1:01 AM, Richard wrote:
  In article<4EC708D5.7000306 at
telegraphics.com.au>,
      Toby Thain<toby at telegraphics.com.au>  writes:
  On 18/11/11 2:07 PM, Jochen Kunz wrote:
  On Wed, 16 Nov 2011 15:30:59 -0500 (EST)
 Mouse<mouse at rodents-montreal.org>   wrote:
  I don't expect any software to be bug-free.
 TeX? ;-) 
 TeX is only bug-free in the limiting case. 
 Also, TeX is pretty feature complete being as it is an implementation
 of a domain specific programming language for typesetting.  All the
 bugs and new features these days are implemented as macro packages
 layered on top of TeX.
 If TeX were being constantly changed to add features, then it would
 have more bugs.  Its well accepted that changing code is the way that
 bugs get introduced, whether that change is due to "finishing" the
 implementation, adding new features to the implementation or even
 fixing existing bugs.
 Also, I would say that the implementation of TeX is pretty
 inscrutable to anyone except Donald Knuth and a handfull of other
 people who have bothered to spend enough time deciphering its
 implementation.  Its implementation is purely procedural; no modules,
 no abstractions, no objects and no attempt to create interfaces that
 hide details.  TeX's implementation is *all* details all the time. 
It is written in a augmented version of standard Pascal (which makes it
extremely portable, even through Pascal-to-C translators), so I am not
sure what you were expecting in terms of encapsulation or objects. OOP
was barely known at the time, and would have been unlikely to interest
Knuth in any case. (Can you really imagine TeX in Java or C++? *shudder*)
Whatever your opinion or disgust at TeX and METAFONT not conforming to
recent idioms, these don't seem to have impaired their reliability,
performance, or sheer longevity: Being the 30-year de facto standard in
academic publishing.
 Knuth's attempt at "literate programming", to write a book that 
Have you read the book?
  documents the implementation and shows you the
implementation at the
 same time by interleaving prose and source code is IMO a complete and
 utter failure. 
It does however mean that the internals are very thoroughly described -
probably better described than any comparable procedural system.
It is also not the only literate program. Other examples that come now
to mind are:
  * lcc, a retargetable ANSI C compiler;
  * Lisp in Small Pieces.
These are considered outstanding expository pieces of work, and TeX and
METAFONT hardly lesser.
--Toby