wcs@ho95e.UUCP (08/18/87)
:>>Fear not, you're in good company. Donald E. Knuth (yes, that Knuth) is one :>>of the worst offenders. His "Art of computer programming" is almost useless :>>for day-to-day use because of "MIX". [ ... ] :> You didn't read his introduction to the book. It's a cookbook of :>algorithms, with sample implementation in a hypothetical language. Knuth's books *are* useful, both for learning and for practical work. Why was ALGOL written some 15 years before Vol 1? It was to provide a concise, unambiguous language for describing algorithms to *people*. Knuth describes most of his algorithms in two forms: - Spaghetti-code English - MIX The main purpose of the MIX code is to show how much work a "real" machine would have to do executing the programs, and as such it's valuable. But he could have done the same in minimal ALGOL, or alternatively designed used a simpler machine model, with more readable programs (even PDP-11 subset). English is great for describing things on a high-level, but ALGOL would be as good or better for most of his programs. Obviously, today you'd use Pascal or C or maybe Ada instead of ALGOL. His mathematical derivations are great. But to call the book a cookbook, you need to be able to find what you want and use it easily. Many good cookbooks spend a lot of time telling you technique and theory, but then put the recipes in a clear and easy-to-read form. Sure, you lose some of the esthetics if the recipe's not in the original Greek or Sanskrit, but after you've translated it once it's nice to have an English version around to make dinner from. I'd use my copies of Knuth a lot more if I could read them easily. Knuth's probably incurable. TeX feels like an assembler language. It's a much *cleaner* language than troff, but it looks just as grungy, and needs LaTeX almost as badly as troff needs -mm. There's a lot of high-level things going on, some of which are quite respectable, but it's unnecessarily unfriendly and hard to use. As for MeTaFoNT, there's no accounting for taste; it's a snazzy system but I think CMR is *ugly* stuff. -- # Thanks; # Bill Stewart, AT&T Bell Labs 2G218, Holmdel NJ 1-201-949-0705 ihnp4!ho95c!wcs
gore@nucsrl.UUCP (Jacob Gore) (08/23/87)
>>>[Comment that Microsoft Basic and Lotus 1-2-3 wouldn't have been successful >>> if they weren't written in assembler.] >> >>All of these could have been easily implemented in an HLL, if it wasn't for >>the fact that they had to have suitable performance on a machine/OS >>combination that forced ad hoc limitations on the software. > >[An entertaining satirical sketch involving Marie Antoniette playing Rogue > on Unix. The moral seems to be in these, closing lines:] > >[To Marie:] "[...] The peasants are rioting! They say that your C program >won't run on their PC's! [...] > > [Marie still does not turn away from her terminal.] "Aaarrgh! Peasants > are so STUPID! Look, I don't have the time to deal with them now. Just > go out and explain to those idiot peasants that all they have to do is > to port the program to their VAXen." [She puts the headphones back on.] OK, let's accept the implication that C is the language of the "proletariat", and let's list a few systems that are in the "peasants"' price range: 1. IBM-PC 2. Macintosh 3. Amiga 4. Atari-ST For which of these was it necessary to rush to market with C compilers that generated programs that could only use a little more memory than the previous generation of machines provided? For which of these do the C compilers now (several years later) come in sizes ("models") Small, Medium, Sort-of-Medium-but-Kind-of-Small, and Large (:-), the latter being easiest to use for programming, but the former having to be used to achieve satisfactory performance? Even those of the so-called "peasants" who don't write their own programs are hurt by these limitations, as people who program for them end up spending the time that they could have used to develop a better (or cheaper) product on inventing tricks for beating things out of the supporting system which it should have provided in the first place. Jacob Gore gore@EECS.NWU.Edu Northwestern Univ., EECS Dept. {gargoyle,ihnp4,chinet}!nucsrl!gore
jay@splut.UUCP (Jay Maynard) (08/26/87)
In article <3240002@nucsrl.UUCP>, gore@nucsrl.UUCP (Jacob Gore) writes:
) OK, let's accept the implication that C is the language of the "proletariat",
) and let's list a few systems that are in the "peasants"' price range:
)
) 1. IBM-PC 2. Macintosh 3. Amiga 4. Atari-ST
)
) For which of these was it necessary to rush to market with C compilers that
) generated programs that could only use a little more memory than the previous
) generation of machines provided? For which of these do the C compilers now
) (several years later) come in sizes ("models") Small, Medium,
) Sort-of-Medium-but-Kind-of-Small, and Large (:-), the latter being easiest to
) use for programming, but the former having to be used to achieve satisfactory
) performance?
Allow me to add one further rhetorical question:
Which of these was available for real people to do real work two to four
years earlier than any of the others?
--
Jay Maynard, K5ZC...>splut!< | uucp: hoptoad!academ!uhnix1!nuchat!splut!jay
"Don't ask ME about Unix... | (or sun!housun!nuchat) CI$: 71036,1603
I speak SNA!" | internet: beats me GEnie: JAYMAYNARD
The opinions herein are shared by neither of my cats, much less anyone else.