peter@ficc.uu.net (Peter da Silva) (11/03/88)
In article <10794@ulysses.homer.nj.att.com>, cjc@ulysses.homer.nj.att.com (Chris Calabrese[rs]) writes: > Personally, my view is this: what the industry needs to rally > behind is one single Look and Feel. This does not mean one > toolkit. I think the industry needs to establish a subset toolkit that does all the basic things (opening a window, getting events, rendering text and graphics, defining menus (in broad terms), poke points (gadgets, radio buttons, what have you), scroll bars, and so on) reasonably well. The equivalent of curses for window systems, if you like. Look-and-feel wars are going to go on as long as the old keyboard wars, with as much chance of being resolved. I don't give a damn what the look and feel is... I just want to write a program and have it run. I have seen references to something called "STDWIN", but don't know what state it's in or how to find out about it. I don't want Open Look on my 68000-based PC. To much screen real-estate is taken up with fluff, and too many machine cycles are going to be needed for it. On the other hand someone with a 68030 and a huge screen is going to find Intuition or GEM stark and boring. But there's no reason a program shouldn't be able to compile and run on all three. -- Peter da Silva `-_-' Ferranti International Controls Corporation "Have you hugged U your wolf today?" uunet.uu.net!ficc!peter Disclaimer: My typos are my own damn business. peter@ficc.uu.net
cjc@ulysses.homer.nj.att.com (Chris Calabrese[rs]) (11/03/88)
In article <2113@ficc.uu.net>, peter@ficc.uu.net (Peter da Silva) writes: > In article <10794@ulysses.homer.nj.att.com>, I write: > > Personally, my view is this: what the industry needs to rally > > behind is one single Look and Feel. This does not mean one > > toolkit. > > I think the industry needs to establish a subset toolkit that does all > the basic things (opening a window, getting events, rendering text and > graphics, defining menus (in broad terms), poke points (gadgets, radio > buttons, what have you), scroll bars, and so on) reasonably well. The > equivalent of curses for window systems, if you like. You mean like the CORE project? Of course CORE locks you into X (I'm using NeWS, and not just because it's more fun :-), but such a toolkit could be made window system independant (like Interviews). As a programmer, I think your idea is great (and not that difficult to implement, either). As a user, I like all my windows to have the _same_ look and feel. Of course, one would assume that each hardware vendor would implement their own look and feel which the user would get used to quickly, however, in any given day, I use hardware from Sun, AT&T, HP, and Convergent. The ideal solution is to have a core window toolkit with a standard look and feel which is user modifyable (at runtime!). This way, each vendor could supply their own standard runtime modifier script, and the user could have their own personal one (/etc/ui and .uirc?). One of the reasons I run NeWS is that I can do this with PostScript code at runtime, and without needing access to expensive source (although I do have such access :-), only to examples which float around on the net. -- Christopher J. Calabrese AT&T Bell Laboratories att!ulysses!cjc cjc@ulysses.att.com
mnc@m10ux.UUCP (Michael Condict) (11/04/88)
To clarify this discussion, it should be stated explicitly that there are two independent parts to a windowing system and there are, not suprisingly, two different reasons for wanting to standardize them. The two parts, of course, are the programmer interface and the user interface (also known as the "look and feel", a vague phrase which somehow has an undignified sound, to me). The last two articles on this subject said "I don't care about standardizing the look-and-feel, but I want a standardized programmer interface" and vice versa. Clearly, one was thinking about easing the programmer's burden and the other about easing the user's burden. I see no reason not to do both. This does not obviate the possibility of multiple implementations of such software, but I think that both interfaces should be standardized. Perhaps the way to go is that there should be more than one standard for user interface and more than one programmer interface, and the supplier of the software for each different programmer interface would ensure that the programmer can easily ask the software to use one of the standard user interfaces. This of course leads to the m * n explosion that is well known in the world of programming language translation. (m = # programmer interfaces, n = # user interfaces). Following this analogy, the problem could be solved by a single, highly general "intermediate" interface, that is neither biased towards a particular programmer interface or towards a particular user interface. Anyone could supply software that maps a desired programmer interface to this intermediate interface, and anyone else could supply software that maps this intermediate interface to one of the standard user interfaces. It wouldn't suprise me if someone has already done this. -- Michael Condict {att|allegra}!m10ux!mnc AT&T Bell Labs (201)582-5911 MH 3B-416 Murray Hill, NJ
guido@cwi.nl (Guido van Rossum) (11/04/88)
In article <2113@ficc.uu.net> peter@ficc.uu.net (Peter da Silva) writes: >I think the industry needs to establish a subset toolkit that does all >the basic things (opening a window, getting events, rendering text and >graphics, defining menus (in broad terms), poke points (gadgets, radio >buttons, what have you), scroll bars, and so on) reasonably well. The >equivalent of curses for window systems, if you like. > >Look-and-feel wars are going to go on as long as the old keyboard wars, >with as much chance of being resolved. I don't give a damn what the look >and feel is... I just want to write a program and have it run. > >I have seen references to something called "STDWIN", but don't know what >state it's in or how to find out about it. I agree with Peter. Looks and Feels may come and go, but I don't want to have to rewrite my code as the fashion changes. I am also the author of STDWIN, so I could clarify any questions you have about it. It will certainly do a lot for you regarding insulation from the application's look and feel. How about me posting a summary of its goals, functionality, availability etc. to one of these newsgroups? It's about 400 lines, but worth reading. STDWIN could be of use to users of X11, Macintosh, Atari-ST, or (to some extent) any Unix box with termcap. Please send fan mail to the address below if you want me to post it. Adventurous souls can also go ahead and have a look at the source by anonymous ftp to the machine gatekeeper.dec.com, whose IP address is [128.45.9.52]. -- Guido van Rossum, Centre for Mathematics and Computer Science (CWI), Amsterdam guido@piring.cwi.nl or mcvax!piring!guido or guido%piring.cwi.nl@uunet.uu.net
peter@ficc.uu.net (Peter da Silva) (11/07/88)
In article <742@m10ux.UUCP>, mnc@m10ux.UUCP (Michael Condict) writes: > Clearly, one was thinking about easing the programmer's burden and > the other about easing the user's burden. I see no reason not to do both. Standardising the programmer's interface does this. It allows the Mac user, used to the way the Mac works, to purchase software that operates under the Mac paradigm. The Sun user purchases the same software and it works under the SunWindows paradigm. He doesn't care that the guy down the hall with the Mac and its wimpy one-button mouse has a slightly different program, and the Mac user definitely doesn't want to waste time trying to keep track of all those buttons and magic areas. > Following this analogy, the problem could be solved > by a single, highly general "intermediate" interface, that is neither biased > towards a particular programmer interface or towards a particular user > interface. This *is* a standard programmer interface. -- Peter da Silva `-_-' Ferranti International Controls Corporation "Have you hugged U your wolf today?" uunet.uu.net!ficc!peter Disclaimer: My typos are my own damn business. peter@ficc.uu.net
mnc@m10ux.UUCP (Michael Condict) (11/08/88)
In article <2153@ficc.uu.net>, peter@ficc.uu.net (Peter da Silva) writes: >In article <742@m10ux.UUCP>, mnc@m10ux.UUCP (Michael Condict) writes: >> Clearly, one was thinking about easing the programmer's burden and >> the other about easing the user's burden. I see no reason not to do both. > >Standardising the programmer's interface does this. It allows the Mac user, >used to the way the Mac works, to purchase software that operates under the >Mac paradigm. Standardizing the programmer's interface does not guarantee that any particular user interface will be implemented by the programmer. If the programmer has a powerful enough interface, s/he can make the windows and windowing operations look arbitrarily different from any user interface in use today. The fact that some programmer interfaces may be too limited to accomplish this does not make me wrong. As someone pointed out to me, this is or was a problem on Mac's, i.e. you had to restrict your use of the programming interface to just those operations that would lead to the standard Mac user interface, at least assuming that you wanted anyone to buy your software. As for your second second statement, I don't understand the point. Of course a standard programmer interface means that you can buy software the uses the interface and it is guaranteed to compile, link and execute successfully on your machine. It is NOT guaranteed to operate under the Mac paradigm, however, if part of this paradigm is defined to be a particular user interface. That is, not unless the programmer interface is so restrictive and abstract as to permit only operations that have a reasonable implementation within the bounds of the Mac user interface. As an example, suppose the programmer interface has operations to deal with scroll bars, whereas the target user interface does not have any concept of scroll bars. It is very nice (for the programmer) that the programmer can do these scroll-bar operations at a high level and not worry about the details of their implementation, but what about the poor user who has never seen a scroll bar and doesn't know what it is used for? What about a programmer interface that allows 5-sided windows, with each of the 5-borders having a different, special purpose when clicked with a mouse? And so on. Summary: It is simply not true that the potential set of operations and rules for a windowing system are so well agreed upon that every thing in one such system has a clear analogue in another. Although maybe we should move in that direction. Michael Condict {att|allegra}!m10ux!mnc AT&T Bell Labs (201)582-5911 MH 3B-416 Murray Hill, NJ -- Michael Condict {att|allegra}!m10ux!mnc AT&T Bell Labs (201)582-5911 MH 3B-416 Murray Hill, NJ
peter@ficc.uu.net (Peter da Silva) (11/10/88)
In article <744@m10ux.UUCP>, mnc@m10ux.UUCP (Michael Condict) writes: > Standardizing the programmer's interface does not guarantee that any > particular user interface will be implemented by the programmer. That's true. We don't want the programmer implementing the user interface. > If the programmer has > a powerful enough interface, s/he can make the windows and windowing > operations look arbitrarily different from any user interface in use today. Yes, but if the programmer interface is defined well enough, it will be easier to just let the interface library stick with the defaults. > As someone pointed out to me, this is or was a problem on Mac's, i.e. > you had to restrict your use of the programming interface to just those > operations that would lead to the standard Mac user interface, at least > assuming that you wanted anyone to buy your software. The idea is that this hypothetical programmer's interface will provide all the capabilities needed by a large percentage of the programs, and most of the capabilities needed by the rest. The trick is defining this interface so it does the job right. This is, as a mathemetician might say, an interesting problem. > It is NOT guaranteed to operate under the Mac paradigm, however, > if part of this paradigm is defined to be a particular user interface. That > is, not unless the programmer interface is so restrictive and abstract as to > permit only operations that have a reasonable implementation within the bounds > of the Mac user interface. No, what I'm saying is that the programmer interface will provide a set of capabilities. These capabilities are the greatest common factor between the window systems it adresses, with some aesthetic and design decisions that let the program look reasonably nice on all the systems it supports built in. > As an example, suppose the programmer interface has operations to deal with > scroll bars, whereas the target user interface does not have any concept of > scroll bars. You mean like the AT&T 7300 UI which uses a pair of arrows, or a keyboard- oriented interface that uses cursor keys? Then when the programmer says "put a scroll-bar here" it'll put a couple of arrows on the 7300 and provide some sort of mnemonic visuals on the keyboard system (like, a picture of the keys). Of course, the variety of systems might be wide enough that a scroll-bar is to low-level a model. Maybe a text pane would be a better level of abstraction. But what's your user-who's-never-seen-a-scroll-bar-before going to do if he runs an OpenLook application on his DeskWindows machine? > Summary: It is simply not true that the potential set of operations and rules > for a windowing system are so well agreed upon that every thing in one such > system has a clear analogue in another. Although maybe we should move in that > direction. A certain subset of the screen objects are reasonably well worked out. An interface that supported only 80% of the systems out there would not be a disaster. I think that such an interface can be designed. By the way, I wasn't attempting to hold up either the Mac or X as examples of programmer interfaces to model this on. They are just examples people are likely to have had some experience with. -- Peter da Silva `-_-' Ferranti International Controls Corporation "Have you hugged U your wolf today?" uunet.uu.net!ficc!peter Disclaimer: My typos are my own damn business. peter@ficc.uu.net
domo@riddle.UUCP (Dominic Dunlop) (11/23/88)
[Just when you thought this thread was coming to an end...] A while back, in article <2113@ficc.uu.net> peter@ficc.uu.net (Peter da Silva) wrote: >I think the industry needs to establish a subset toolkit that does all >the basic things (opening a window, getting events, rendering text and >graphics, defining menus (in broad terms), poke points (gadgets, radio >buttons, what have you), scroll bars, and so on) reasonably well. The >equivalent of curses for window systems, if you like. Good analogy, but. The problem with curses is that it has always lagged programmer and user requirements in terms of the terminal facilities to which it is able to provide access. Consequently, programmers have come up with non-standard extensions in order to access these facilities. These extensions are a pain to maintain, both for the author, and for users -- particularly those users who have more than one set of extensions to contend with. Examples are line drawing Introduced last year in 5.3.0 more then ten function keys Introduced last year in 5.3.0 auxiliary port handling Introduced last year in 5.3.0 colour Came in this year with 5.3.1 generalised non-ASCII chars Will arrive next year in 5.4.0 (Revision levels refer to AT&T UNIX releases. I could be wrong about exactly what popped up in 5.3.0, but I'm not too far out.) A standard ``look and feel'' toolkit for bit-mapped windowing environments should be as comprehensive as imaginable from day one, otherwise we're going to see the same sort of grafted-on and unmaintainable crud that we have already seen with curses. What's more, if some widget which is currently unimaginable gains a following in the future, it (or a cleaned-up, generalised version of it) must be incorporated into the toolkit in a timely manner by whoever is responsible (AT&T? Sun? OSF?), rather than five years or more later, as seems to have been the case with curses. -- Dominic Dunlop domo@sphinx.co.uk domo@riddle.uucp