diff options
Diffstat (limited to 'support/splint/cweb/philosophy.w')
-rw-r--r-- | support/splint/cweb/philosophy.w | 37 |
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 |