Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!bellcore!decvax!decwrl!pyramid!pesnta!hplabs!hpda!hpisoa2!hpitg!cdx27!jc@cdx27 From: jc%cdx27@cdx27.UUCP Newsgroups: net.arch Subject: Re: Re: 68k dbcc Message-ID: <133@cdx27> Date: Mon, 28-Apr-86 19:35:00 EDT Article-I.D.: cdx27.133 Posted: Mon Apr 28 19:35:00 1986 Date-Received: Sun, 11-May-86 15:46:14 EDT References: <3479@sun> Lines: 52 [This is a test to see if the f- command works on our newly-installed usenet site.] > > The lesson here is don't ever say "Nobody will ever try X" with an instruction > > set. > > I suspect the "minimize the number of architects" principle that Brooks > mentions in "The Mythical Man Month" is actually a symptom of this > approach. When you have one architect (or a small number of them), > they are somewhat forced to design axiomatically, simply in order to > reduce the complexity of the design. True, but even single-architect designs often show the same problems. There's nothing that ensures that a single designer won't fall for the "Nobody will every try X" fallacy. And even if the designer understands, there's nothing to prevent implementations to fall short, especially when porting to a new machine by people who barely understand the innards of what they're porting. A nice example that bit me recently was a program on SYS/V that went crazy, eating up cycles but never doing anything. It looked like the traditional infinite loop, but I could show "logically" that it wasn't possible, since there was output generated by even the innermost loops. The problems turned out to be a call of sleep(n), where n turned out to be zero in a few cases. It doesn't work right. You have to say if (n > 0) sleep(n); and note the "> 0"; it'd better be there! Just try getting a bug like this fixed, and you'll appreciate what can be done to you by low-level coders. "That's silly, nobody with any sense would do a sleep(0)." Well, maybe I don't have much sense, but I understand why it's better for the system to do sleep(0) correctly than to clutter up thousands of programs with "if (n > 0)" that is there just to get around a bug in a system call. Next they're going to make an add instruction that fails when either operand is zero, because "It's silly to waste time adding zero to a number." [If you can read this, our readnews' "f-" command works. If there is nothing after this line, the .signature feature has failed.] -- John Chambers /cthulhu\ / fps1 \ / fps2 \ /root ...!{ inmet }!cdx39!{ jc \ mot / \uucp \ ucadmus / \larry /