Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!sun-barr!newstop!texsun!texbell!sugar!ficc!peter From: peter@ficc.uu.net (Peter da Silva) Newsgroups: comp.windows.news Subject: Re: Is SUN a "PURE PLAYER" in window systems - SunView or OpenWindows??? Message-ID: <7363@ficc.uu.net> Date: 19 Dec 89 18:54:41 GMT References: <8912162135.AA03025@iris.rand.org> <4290@crdgw1.crd.ge.com> <7352@ficc.uu.net> <4301@crdgw1.crd.ge.com> Reply-To: peter@ficc.uu.net (Peter da Silva) Organization: Xenix Support, FICC Lines: 109 Suggested that a standard user interface is premature, and urged consideration of the lack of a standard programmer interface. The analogy I used was with the UNIX system calls and the C stdio library... In article <4301@crdgw1.crd.ge.com> barnett@crdgw1.crd.ge.com (Bruce Barnett) writes: > I don't agree. First of all, there would have to be a standard > language. Why? Let's go back to my analogy... what difference does it make whether the system call looks like: nread = read(fd, buf, nbytes); CALL READ(FD, BUF, NBYTES, NREAD) CALL C_READ(FD, @BUF, NBYTES, @NREAD); (setq nread (read fd buf nbytes)) nread := cread(fd, buf, nbytes); The semantics are the same. Similarly, let's look at a hypothetical window call: Menu = AddWindowMenu(Window, "Frobitz", "Fooble"); CALL ADDWM(WINDOW, 'Frobitz', 'Fooble', MENU) CALL W_ADDWINDOWMENU(WINDOW, @('Frobitz',0), @('Fooble'), @MENU); (setq menu (AddWindowMenu Window 'Frobitz 'Fooble)) menu := AddWindowMenu(Window, 'Frobitz', 'Fooble'); > C++ and Lisp would be a good choice for an object oriented > windowing system. I don't think tying windowing into any particular metaphor is a good idea. A program is more than a user interface with a bit of work going on behind it. The main purpose for most programs is what they do, not what they look like. > Does this solve your problem? Of course not. I would rather use an > object oriented (O-O) language to support an O-O window system. I'd rather use the best language for the job the program is intended to do. Not the best language for the user interface. That's just putting the cart before the horse. What if you're working in Prolog? Or APL? Or you're working for the DoD in ADA? Or adding a GUI to MicroEmacs? > I certainly would not want to wait three years for a standards > committee to define the stdio-windows library package. But you're willing to wait three years for a standards committee to define the user interface? > IMHO defining a standard binding is premature. People don't > even know what toolkit to use! Toolkit? As in X toolkit? My dear fellow. X is part of the problem. It's way too low level for something like this. > Standards are also restricting - they are great at telling people what > they cannot do. Defining a standard programming too soon is a disaster. No more than defining a standard UI. > in <7344@ficc.uu.net> Peter says: > >Personally, I think terminfo sucks. > Case in point. terminfo is a standard package for ASCII terminals. > It doesn't make it good. Termcap is a standard package for ascii terminals too. It's a hell of a lot smaller, cleaner, and (as I said in the message you so ruthlessly cribbed that from) better. Besides, Termcap and terminfo are both far below the level I'm talking about here. Curses is a closer metaphor. > Also - as any novice software engineer will tell you, the first step > in a project is the top level specifications. You DON'T write code > before you know what it is that you want the code to do. Yeh, but is the code supposed to put up pretty pictures or do real work? > This is the function of the Open Look style guide. The style of the UI shouldn't even be *in* the program. The details involved in OpenLook or Motif are way too low level. they belong in the UI handler (whether it be a server process, a PostScript program, a shared library, or even a statically linked library). > I think it is obvious that the top level specifications should be > done before any code is written. Yeh, but what should we be specifying? "I want a window big enough to hold the following objects: a text pane containing this text, and a selector for YES and NO. Tell me when someone selects YES or NO, and don't bug me otherwise", or "Draw a rectangle here, now put these characters in this font here, and then draw these rectangles... (lots deleted) now tell me when anyone clicks in my window. Oh, OK, erase this rectangle and redraw it here, and blit this rectangle up by the size of this font, put these characters here, and tell me what you want me to do next..." ? -- `-_-' Peter da Silva. +1 713 274 5180. . 'U` Also or . "It was just dumb luck that Unix managed to break through the Stupidity Barrier and become popular in spite of its inherent elegance." -- gavin@krypton.sgi.com