Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!ucsd!ucbvax!MITCH.ENG.SUN.COM!wmb From: wmb@MITCH.ENG.SUN.COM Newsgroups: comp.lang.forth Subject: Spurious analogy Message-ID: <9007040417.AA28460@ucbvax.Berkeley.EDU> Date: 4 Jul 90 01:31:44 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: wmb%MITCH.ENG.SUN.COM@SCFVM.GSFC.NASA.GOV Organization: The Internet Lines: 67 > John's 30-sided sponge analogy is more accurate than he thought, > thought, by dint of the fact that a 30-sided wrench will fit neither > 5- nor 6-sided nuts and bolt heads! Au contraire, the analogy is about as INaccurate as you can get. To summarize the analogy: All vendors use 6-sided bolts except one who uses 5-sided bolts. Committee invents a 30-sided wrench and calls it a "sponge" Counterarguments: 1) The points of contention under discussion (NOT and / appear to be the big culprits) are not divided "one vendor against the rest of the world". They are divided about 50-50, and are generally points where Forth-79 and Forth-83 disagree. 2) A 6-sided wrench will HARDLY EVER (never?) work on a 5-sided bolt. However, in the most commonly used cases, symmetric and floored division give the same result. A lot of people don't even realize that there is a difference! The most popular use of NOT is for complementing a flag just before IF , and in most cases, where the flag is a result of a comparison operator, NOT gives the same answer as 0= . (yes, I know that this is incorrect usage, but I see people doing it ALL THE TIME, even on Forth-83 systems. The fact that people routinely use NOT incorrectly is in itself an indication that NOT is a problem area). 3) ANS Forth has not "invented a 30-sided wrench". ANS Forth has noted that 2 flavors of wrenches ALREADY EXIST, LIKE IT OR NOT, and has DOCUMENTED the range of usage in which either of the two flavors can be used interchangeably. A much better analogy is open-end wrenches vs. box-end wrenches vs. socket wrenches. In many or most applications, you could use either of those kinds of wrenches, but there are a few cases where a particular kind is preferable. Furthermore, ANS Forth has DISTINGUISHED the (already existing) different kinds, making them MORE PRECISE. It has not "invented a catch-all wrench". (Generic)Wrench Box-End Wrench Open-End Wrench / SM/MOD FM/MOD NOT 0= INVERT 4) Calling it a "sponge"? Come on, guys. The word "sponge" has nothing at all to do with "wrench", and in fact already has a well-known meaning which is something entirely different. INVERT is a meaningful name for bitwise logical inversion, and has no conflicting prior usage. SM/MOD and FM/MOD are meaningful names of Symmetric and Floored mixed-precision division/modulus, fiting in well with the established and non-controversial name UM/MOD . 5) "a 30-sided wrench doesn't work". In what way does the ANS Forth solution "not work"? I claim that it works VERY WELL. I can continue to use my existing code WITHOUT CHANGE , and I can write new code and know exactly what it will do. Most analogies break down somewhere. This one breaks down before it even gets out of the starting gate. Perhaps some people have gotten stuck in a "complain, no matter what" mode. Mitch