summaryrefslogtreecommitdiff
path: root/support/splint/cweb/philosophy.w
diff options
context:
space:
mode:
Diffstat (limited to 'support/splint/cweb/philosophy.w')
-rw-r--r--support/splint/cweb/philosophy.w37
1 files changed, 30 insertions, 7 deletions
diff --git a/support/splint/cweb/philosophy.w b/support/splint/cweb/philosophy.w
index 7b173f5d2f..1f5c4a3dfc 100644
--- a/support/splint/cweb/philosophy.w
+++ b/support/splint/cweb/philosophy.w
@@ -1,4 +1,4 @@
-@q Copyright 2012-2020, Alexander Shibakov@>
+@q Copyright 2012-2022, Alexander Shibakov@>
@q This file is part of SPLinT@>
@q SPLinT is free software: you can redistribute it and/or modify@>
@@ -64,6 +64,12 @@ they set a special reading rhythm, which is an added bonus in many
cases, although their presense openly violates
the `universally gray pages are a must' dogma.
+One final remark concerns the abundance of footnotes in this manual. I confess,
+there is almost no reason for it $\ldots$ except {\em I like footnotes\/}!
+They help introduce the air of mystery and adventure to an otherwise boring
+text. They are akin to the author wispering a secret in the reader's
+ear\footnote{Breaking convention by making the pages even less uniform is an added bonus.}.
+
@*1 Why GPL.
Selecting the license for this project involves more than the
availability of the source code. \TeX, by its very nature is an
@@ -191,12 +197,19 @@ the language. `Make it object-oriented' is neither a good reason nor a
clearly defined one, however.
@*1 Why not $*$\TeX.
-Simple. I never use it and have no idea of how packages, classes,
+Simple. I rarely, if ever\footnote{In some cases, a publisher would only accept
+a \LaTeX\ document, sadly. Better than most alternatives though.},
+use it and have no idea of how packages, classes,
etc., are designed. I have heard it has impressive mechanisms for
dealing with various problems commonly encountered in \TeX. Sadly, my
-knowledge of $*$\TeX\ machinery is almost nonexistent. This may change
-but right now I have tried to make the macros as generic as possible,
-hopefully making $*$\TeX\ adaptation easy.
+knowledge of $*$\TeX\ machinery is almost nonexistent\footnote{I am well familiar
+with the programming that went into \LaTeX, which is of highest quality. I do not
+share the design philosophy though and try to use only the most standard features}.
+This may change but right now I have tried to make the macros as generic as possible,
+hopefully making $*$\TeX\ adaptation easy\footnote{Unfortunately some redesign would
+be certainly necessary. Thus, \splint\ relies on the way plain \TeX\ allocates token
+registers so if the corresponding scheme in \LaTeX\ is drastically different, this
+portion of the macros would have to be rewritten.}.
The following quote from \cite[Ho] makes me feel particularly uneasy
about the current state of development of various \TeX\ variants:
@@ -205,7 +218,7 @@ and even more important is that the general impression is that of a finished boo
sometimes it seems like\/ \.{WEB} actively discourages development. This is
a subjective point, but nevertheless a quite important one.}''
-{\it Discouraging development\/} seems like a good thing to
+{\it Discouraging development\/} seems like a good feature to
me. Otherwise we are one step away from encouraging writing poor
software with inadequate tools merely `to encourage development'.
@@ -300,7 +313,7 @@ inserts \.{\\hbox\{\}}$\,$\TeX\ stuff$\,$\.{\{\}} into \CWEAVE's output. The
cost of this hack (aside from looking and feeling rather ugly on the
editor screen, not to mention disrupting the editor's brace
accounting) is a superfluous \.{\\hbox\{\}} left behind {\em before\/}
-the `\TeX\ stuff'. The programmer's provided \TeX\ code is unable to
+the `\TeX\ stuff'. The programmer provided \TeX\ code is unable to
remove this box (at the macro level, i.e.~in \TeX's `mouth' using
D.~Knuth's terminology, one may still succeed with the \.{\\lastbox}
approach unless the \.{\\hbox} was inserted in the main vertical mode)
@@ -312,6 +325,16 @@ cases such side-effects are indeed desirable, and save the programmer some
typing but it seems that the \.{@@t} facility was not well thought
out in its entirety.}.
+Continuing with the theme of inserting \TeX\ material into \CWEAVE\ output,
+another one of \CWEB's inflexibilities is the lack of means of inserting
+\TeX\ {\em between\/} sections. While inserting pure text may be arranged by
+putting a codeless section after the one with the code (appropriate macros
+can be written to suppress the generation of a reference to such a section),
+inserting command sequences that affect, say, the typesetting style
+of the consequent sections is not so easy. The trick with a `fake' section below
+will be quite visible in the final output which is almost always undesirable.
+Using the \.{@@t} mechanism is also far from ideal.
+
In general, the lack of structure in \CWEAVE's generated \TeX\ seems
to hinder even seemingly legitimate uses of \.{cwebmac.tex}
macros. Even such a natural desire as to use a different type size for