Path: utzoo!attcan!uunet!lll-winken!ames!mailrus!cwjcc!tut.cis.ohio-state.edu!triceratops.cis.ohio-state.edu!karl From: karl@triceratops.cis.ohio-state.edu (Karl Kleinpaste) Newsgroups: comp.os.misc Subject: Generalized bigotry Message-ID: Date: 16 Jan 89 19:21:15 GMT References: <19@xenlink.UUCP> <225800108@uxe.cso.uiuc.edu> <2075@scolex> Sender: news@tut.cis.ohio-state.edu Organization: OSU Lines: 100 Someone writes: Keywords: begin flame Flames doused. >[loud complaint that doesn't provide a >certain , thus making it so that...] >...YOU CAN'T, ABSOLUTELY CAN'T write decent software. [Response consisting of several interesting points regarding the relative appropriateness of in , and how the specific in question is really quite INappropriate for the specific in question, with the possible generalization that the in question is quite possibly morally wrong in .] Folks, please: Take it easy. Sit back and think about it a while. Get a glass/can/ bottle of your favorite drink and ponder the possibilities a while. Different machines are designed with different purposes in mind. There is software appropriate to those purposes written for such machines. A lot of machines can be asked to generalize to a UNIX-like set of software. A lot can't be asked to do so. Neither situation is Morally Wrong. Machine design, and the attendant software design which follows on with it, is quite possibly the one place in the world where situation ethics is appropriate. If it makes sense to do something, then there is no reason not to do so. If it does not make sense to do something, there is no reason to waste time trying to retrofit concepts that are pointless within the context. 80386-based machines are designed to be small, low-throughput, more-or-less friendly boxes that Joe Average can pick up and carry around to do the day-to-day work of Joe, just Joe, mostly by himself, though multi-user incarnations of 80386 boxes are certainly possible. Retrofitting any number of software concepts into such a box is perfectly reasonable, in order to provide the best set of available contexts in which Joe can work - then he can pick and choose as he sees fit. Minicomputers are designed with different purposes in mind. In general, they seem well-suited to retrofit of UNIX paradigms, but there's no reason they have to be. There's nothing (im)moral about any given set of software concepts which one chooses to implement in any given mini. There are desirability attributes, usually, but not moral attributes. Mainframes and supercomputers are designed with yet another set of purposes, typically related to large quantities of raw throughput. Sometimes, and by no means always, the retrofit of UNIX paradigms into these environments works well. Amdahls apparently work well with UNIX paradigms. Many times they don't. Crays are quite possibly the best example available. Crays are all about number-crunching. (Where else does one get the concept of "strip-mining memory?" Fascinating physical analogies come to mind.) Crays are interested in getting the most computation done, where computation is defined in terms of huge databases of deeply complex numerical relationships with the intent of manipulating them to new relationships with different interpretations. Computation is not necessarily defined within this context as easy-to-get-along-with screen-oriented editors. Those are comparatively low-grade tasks, best suited to the machines that perform front-end functions to Crays. This is because massive numerical computation, for which Crays are designed, is in general not very compatible with massive user I/O interrupts, context switches, and swapping, for which Crays are not designed. It all revolves around the purposes for which the machine is designed. Such a machine may manage to perform "acceptably" when given a set of concepts in software which it was never intended to support (by the designers), but it will not do as well as with those concepts which the designers had in mind in the first place. Hence, a port of pcc to the Cray may work, but it'll perform awfully, if for no other reason than that it won't parallelize. To the extent that it was reasonable, UNICOS has retrofitted those portions of the UNIX paradigm that made sense. They have in fact provided more than was necessary here, because char-at-a-time I/O is available, but it's a disgusting dog of a way to get work done on a Cray. Thus, some of these retrofits would be much better left undone, simply because the purposes for which the machine was designed are not particularly accommodating. And this fact is neither Morally Right nor Morally Wrong. We can all congratulate who have seen fit to perform these retrofits of familiar concepts for us, but let's not get ourselves into the trap of thinking, because we have a certain set of concepts which we hold as wonderful and useful, that those concepts constitute the moral high ground. There is no moral high ground here. There are merely various regions and corners in a flat field, where the corners and regions define intended machine purposes. Think of Venn diagrams defining intended machine purposes, and you're probably on the right track. "Never underestimate raw, frothing, manic hardware." --Barry Shein, 1988 --Karl