quanstro@thor.acc.stolaf.edu (flash) (06/15/91)
TeX: what's good, what's bad, what's a wash. Being an expert at critcism, I think I start with the rag on TeX. * TeX is a Macro language. This makes it VERY difficult to debuge the lowsy thing. It also makes it possible to creat real monstrocities by writing macros which expand to macros which .... Consider this contruction: \def\foo{\bar} \def\bar#1#2{{#2}#1} Now you're typing along and type "\foo blah" and you get this great surprise in the output when you see "...lbah" instead of "blah". Try to track than one down, expecially if the offending macro is in plain.tex. I've personally spent many an hour trying to keep track of what expands to what and where the expansion goes bad. And if you thought THAT one was bad, here's one direct from DEK: \def\a{\b} \def\b{A\def\a{B\def\a{C\def\a{b}}}} \def\puzzle{\a\a\a\a\a} [TeXbook --- page 2^3*5^2] So what in the world does this beast expand to? I really have better things to do than to figure that out. Sure, I've found some pretty nasty examples BUT dirty dricks like these are about the only way to get a lot of things done with TeX. If these were really just an example of bad programming (they are, btw also very bad examples of TeX programming) I wouldn't have a proble with TeX, but a lot of the time (any time one wants to write a non-trivial macro) a dirty drick is the only way to get the job done. DEK even includes an appendix (which is severl;y infected and really needs to be cut out (*grin*)) named "dirty tricks." A reasonable typesetting language requieres a reasonable programming language. I have know idea what type of lauguage but, at the bare minimum it must support _modular_ programming and clear contexts. * TeX has too many damn primitives I don't need to say much about this. I've seen a couple of complaints about this on the net already. * TeX does not (practilly) support two-mode typesetting. In TeX, as far as the user is concerned, you're either inserting text or inserting text. I know that you can get around this with some trick definition of \output but the point remains that it's really hard to read TeX code because the auther's usually worried about some exrta space creaping into the current list somehow. * Those wonderful error messages Sorry, I don't know how to help in this situation. Maybe you should try asking a human? Sorry, I already gave what help I could... An error might have occurred before I noticed any problems. ``If all else fails, read the instructions.'' One of your faux pas seems to have wounded me deeply... in fact, I'm barely conscious. Please fix it and try again. * etc. WHAT'S GOOD ABOUT TeX. * Quite good typesetting algorithms. * Quite machine independent * Clean underlying model of typesetting TeX really only looks after two basic things: boxes and glue and applies the glue-rules to put them together. AND WHAT'S NIETHER HERE NOR THERE ... BUT ... * The thing IS a standard -- %-----cut here with a sharp machete or an 19.95 ginsu knife quanstro@stolaf.edu after Erik Quanstrom % S. Baumann Erik Quanstrom 20. Jan -> Malinckrodtstra\3e 50