From madore@news.ens.fr
Path: eleves.ens.fr!not-for-mail
From: GroTeXdieck <madore@clipper.ens.fr>
Newsgroups: ens.forum.archeo-forum.tex
Message-ID: <glouk_tex_2667@clipper.ens.fr>
NNTP-Posting-Host: clipper.ens.fr
Xref: eleves.ens.fr ens.forum.archeo-forum.tex:2667
Date: 2 Mar 1998 19:20:21 MET
Subject:  Latte TeX

Constatation : les defauts de TeX ne manquent pas :
 * les variables globales sont limitees a 256 de chaque type
 * le programme est bourre de nombres ``magiques'' (ex : penalty 10000) et de
limitations etranges (maximum 15 familles) ou de codages mysterieux (plein de
bidouillages sur le codage en octal, voir p.e. les chapitres ``summary of...''
du TeXbook)
 * il y a trop de commandes primitives introduites ad hoc pour faire une
chose precise (alors qu'il aurait fallu introduire une methode generale pour
resoudre des problemes semblables)
 * le parsing est extraordinairement etrange ; les identificateurs ne peuvent
pas contenir (sauf re-catcode-age agressif) de chiffres ou de traits de
soulignement ce qui rend les choses degueulasses
 * le traitement des espaces et des retours chariot est immonde, on n'y
comprend rien et ca rend la production automatique de fichiers TeX (par ex
par un preprocesseur) vraiment difficile (il faut controler qu'on ne genere
pas accidentellement deux retours chariot de suite sinon on a un \par
indesirable et autres plaisanteries du meme genre)
 * le codage des polices de caracteres est pour le moins fantaisiste
 * meme si on fait (genereusement) abstraction de la limitation du nombre de
variables, ce n'est pas du tout un langage de programmation potable ; tout
doit se faire par des hacks immondes
 * il n'a pas (le format dvi n'a pas) de commandes graphiques meme minimales :
tous les traits et cercles doivent etre traces avec des caracteres disponibles
ce qui limite pas mal les possibilites
 * on ne peut pas faire tout ce qu'on veut (des qu'une formule est un tant
soit peu compliquee, surtout s'il s'agit d'un diagramme, on est coince) ou
bien au prix de complications invraisemblables et pas du tout logiques...
 * le TeXbook, et surtout l'appendice D, montrent a quel point c'est immonde ;
et les sources de TeX elles-memes ne font que confirmer cette impression, ne
serait-ce que parce que :
 * TeX est ecrit en PASCAL !!!!! (enfin, en WEB). BERK !!!!!

     Ce que je trouve curieux, c'est qu'un type aussi genial que Knuth ait pu
faire un truc aussi execrable. En fait, ca ressemble a du M$ - certes, les
sources sont publiques (encore qu'on n'a pas le droit d'y toucher), mais les
regarder est assez douloureux. Je dois admettre qu'elles sont tres, tres, tres
bien commentees (grace au langage WEB, en quelque sorte, le programme est son
propre commentaire). Mais (cf. ce que dit Linus), commenter du code mal ecrit
c'est inutile.

     Quant a LaTeX, il ne fait qu'empirer les choses en rajoutant une grosse
couche bien degueulasse a des bases deja pas saines du tout. Evidemment, TeX
est ce qu'il y a de mieux dans le domaine, tout simplement parce qu'il n'y a
rien d'autre.

     De plus, TeX est maintenant fige, c'est Knuth lui-meme qui le dit, et
d'ailleurs le numero de version, 3.14159, l'indique assez clairement : ca
ne bougera pas de plus que 10^-5. Donc pas de possibilite d'amelioration.

     Bilan : il faut tout recommencer a zero, faire un programme tout nouveau
pour le typesetting [traduction ?] en tout genre (maths, mais aussi musique,
PAO, etc.), fonde sur un noyau elegant et logique, un veritable langage de
programmation (peut-etre ala postscript), et en un mot qui n'ait pas les
defauts de TeX que j'ai enumeres. De plus, pour faciliter la transition, il
doit etre facile de creer des documents ANT (Ant's Not Tex) qui puissent etre
convertis en TeX (et meme en tous les dialectes de TeX) - par exemple par un
preprocesseur (par exemple SIMPLE :-)

     Par ou on commence ?




From madore@news.ens.fr
Path: eleves!not-for-mail
From: madore@news.ens.fr (GroTeXdieck)
Newsgroups: ens.forum.alt.bavardage.deprime
Subject: Re: =?iso-8859-1?Q?On_croit_r=EAver?=
Date: 1 May 1999 15:52:45 GMT
Lines: 28
Sender: madore@clipper.ens.fr
Message-ID: <7gf80d$odn$1@clipper.ens.fr>
References: <7get9o$hne$1@clipper.ens.fr> <7gf6o2$nq3$1@clipper.ens.fr>
NNTP-Posting-Host: clipper.ens.fr
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: clipper.ens.fr 925573965 25015 129.199.129.1 (1 May 1999 15:52:45 GMT)
X-Complaints-To: forum@clipper.ens.fr
NNTP-Posting-Date: 1 May 1999 15:52:45 GMT
X-Newsreader: Flrn (0.4pre1 - 03/99)
Xref: eleves ens.forum.alt.bavardage.deprime:464

Moi je dirais que LaTeX est à TeX ce que Windows est à DOS : on part
d'un truc assez petit, crade, vieux, modérément efficace mais contenant
des fonctionalités très bizarres, des tas de nombres magiques, des
hacks immondes, etc.  Et on y rajoute une tartine très épaisses de
hacks supplémentaires, dans l'intention, peut-être louable au départ,
de faire quelque chose de joli et de plus simple à utiliser que le truc
de départ.  On se retrouve avec une monstrueuse tour aux fondations
incertaines, à laquelle plus personne en comprend rien mais sur
laquelle on rajoute encore des niveaux et des niveaux qui se
soutiennent dans l'air plus par miracle que par autre chose.  Résultat,
il se produit des épiphénomènes étranges, des bugs incompréhensibles,
qu'on peut peut-être chasser un par un mais au prix de compliquer
encore l'édifice et de rajotuer de nouveaux bugs ; effets bizarres de
combinaisons de fontes, intéractions imprévues entre certains packages
nationaux et certaines macros (p.e. le caractère « dans \verb avec le
package [francais]{babel}), ou l'équivalent avec des icônes. 
Là-dessus, certains veulent tout remettre à zéro et faire sans le truc
vaseux du départ...  mais garder la compatibilité ascendante.  Ça donne
un projet foireux, Windows NT ou LaTeX3, qui corrige sans doute
certains bugs mais qui introduit ses propres idioties.

Moi je me demanderais plutôt ce qui est à LaTeX ce que Linux est à
Windaube.

Du reste, Seb, tu peux te douter que quand ¦# tape sur LaTeX ce n'est
pas pour lui préférer Word !  Je pense que XML + XSL (ou CSS) + MathML
serait à son goût, comme ce serait au mien...  si seulement une
implémentation de cette chose-là existait.

From madore@news.ens.fr
Path: eleves!not-for-mail
From: madore@news.ens.fr (GroTeXdieck)
Newsgroups: ens.forum.alt.bavardage.deprime
Subject: Re: =?iso-8859-1?Q?On_croit_r=EAver?=
Date: 1 May 1999 18:39:58 GMT
Lines: 70
Sender: madore@clipper.ens.fr
Message-ID: <7gfhpu$1rd$1@clipper.ens.fr>
References: <7get9o$hne$1@clipper.ens.fr> <7gf6o2$nq3$1@clipper.ens.fr> <7gf80d$odn$1@clipper.ens.fr> <7gfa4f$qci$1@clipper.ens.fr>
NNTP-Posting-Host: clipper.ens.fr
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: clipper.ens.fr 925583998 1901 129.199.129.1 (1 May 1999 18:39:58 GMT)
X-Complaints-To: forum@clipper.ens.fr
NNTP-Posting-Date: 1 May 1999 18:39:58 GMT
X-Newsreader: Flrn (0.4pre1 - 03/99)
X-Troll: somewhat
Xref: eleves ens.forum.alt.bavardage.deprime:469

Max in litteris (alt.bavardage.deprime:466) scripsit :
> TeX n'a rien d'immonde.

Contretest.

Prenons par exemple les lignes 3732 et suivantes de tex.web (ce n'est
qu'un exemple, je pourrais en trouver *beaucoup* d'autres) :

@ The code will have to change in this place if |glue_ratio| is
a structured type instead of an ordinary |real|. Note that this routine
should avoid arithmetic errors even if the |glue_set| field holds an
arbitrary random value. The following code assumes that a properly
formed nonzero |real| number has absolute value $2^{20}$ or more when
it is regarded as an integer; this precaution was adequate to prevent
floating point underflow on the author's computer.

(Je parle bien sûr de la deuxième phrase.)

Ah, j'aime bien aussi ce truc sur lequel je tombe à la ligne 24169 :

We declare a global integer variable
called |ready_already|. The probability is negligible that this
variable holds any particular value like 314159 when \.{VIRTEX} is first
loaded.

Je crois que tout ça se passe de commentaire.

Maintenant je pardonne à Knuth pour ce qu'il a fait en 1982, comme je
pardonne à l'auteur de la première version de DOS (comment
s'appelle-t-il, au fait ?).  Mais de là à dire que ce n'est pas
immonde...

> TeX est un jeu tres drole, et aux regles bien foutues et claires.

Hilarant, en effet.  Un peu comme le bridge.

Essaye de décrire la syntaxe de TeX pour voir.  La manière dont se
fait l'analyse lexicale et syntactique est complètement fumée.  Et
Knuth n'a pas d'excuse : il n'avait rien à apprendre en syntaxe.  En
tout cas, il connaissait le métalangage de Backus-Naur : c'est même
lui qui lui a donné ce nom.

Ce qui est très bien, dans TeX, c'est son back end.  Le front end est
horrible.

> Knuth s'est bien amuse avec, et pour les gens comme lui, les techniques
> d'optimisation employees dedans sont juste des private jokes...

Oui, comme ceci (ligne 2523 et suivantes de mf.web) :

@* \[8] Algebraic and transcendental functions.
\MF\ computes all of the necessary special functions from scratch, without
relying on |real| arithmetic or system subroutines for sines, cosines, etc.

C'est super de la part de Knuth de décider de ne pas utiliser les
routines numériques du système.  Effectivement, à l'époque on pouvait
être sûr qu'une fonction écrite par Knuth serait toujours dix fois
plus rapide.  Maintenant qu'on hardcode le sinus dans le processeur,
j'ai quand même des doutes...

Moi je n'ai pas envie de souffrir de ses private jokes.  Il peut se
les garder, ses private jokes.

> Par contre, vouloir pondre LaTeX2e au-dessus de TeX releve du meme
> ordre de brain-damage qu'un certain nombre d'abominables usines a gaz
> bien connues... on generalise, on generalise, et au bout du compte, on
> passe plus de temps a faire de l'infrastructure qu'a ecrire du code qui
> fait des choses.

Tout à fait d'accord.

