Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!tut.cis.ohio-state.edu!ucbvax!pasteur!dent.Berkeley.EDU!davidh From: davidh@dent.Berkeley.EDU (David S. Harrison) Newsgroups: comp.sys.misc Subject: Re: What is UNIX? Re: Is SUN a "PURE PLAYER" in window systems - SunView or OpenWindows?? Message-ID: <20997@pasteur.Berkeley.EDU> Date: 4 Jan 90 19:58:25 GMT References: <.3ZB2Cxds13@ficc.uu.net> <9001021449.AA21356@super.super.org> Sender: news@pasteur.Berkeley.EDU Reply-To: davidh@dent.Berkeley.EDU (David S. Harrison) Lines: 37 In article <.3ZB2Cxds13@ficc.uu.net>, peter@ficc.uu.net (Peter da Silva) writes: > The first rule of system design is: make the easy things easy, then make > the hard things possible. This is best done by providing a simple unifying > concept that defines the system. I've not heard a lot about Apollo Domain, but > what I have heard is typical of pre-UNIX proprietary systems: lots of > complex system calls and data structures, I/O tied closely to the hardware. > And X is certainly complex to use. > > Am I wrong? What's the simple unifying concept for DomainOS? Or X? Personally, I don't see a simple unifying concept in NeWS either. Basically, window systems are complex because they are asked to provide a wider range of functionality than most systems. I am also not convinced of your rule of system design. Complex tasks are most often successfully tamed using a layered approach. I like to think of networking protocols as a good example. TCP/IP is built on a number of protocol layers each providing a higher level of abstraction. Building TCP/IP from scratch is quite difficult and error prone. Good layered systems tend to use the concept of mechanism vs. policy. The low-level framework of your system should be designed so that *all things are possible* (mechanism) and higher levels should use this lower level to provide convenient, application dependent access to your system (policy). This way, if someone wants functionality that is not present at higher levels, they can use lower levels to implement it. I claim both X and NeWS are the low-level framework of a user-interface system. As such, I think X is the better design because it allows greater freedom (through lower-level access) to design high-level toolkits. I won't belabor the point since much of this discussion is highly religious and I doubt anyone is about to change their convictions. David Harrison UC Berkeley Electronics Research Lab (davidh@ic.Berkeley.EDU, ...!ucbvax!ucbcad!davidh)