peterson@milano.UUCP (01/20/88)
Trip Report: X Windows Conference MIT 13-15 Jan 1988 The Conference consisted of two half-day tutorials, on Xlib and the Xtk Toolkit on the first day, followed by a set of talks with intermixed "Birds-of-a-Feather" sessions for the next two days, concluding with a short status report by Bob Scheifler, the head of the MIT X Consortium. Over 1000 people attended. Scheifler listed about 5 "official" names for X (but went on before I could copy them down). Scheifler reported that the following are members of the Consortium: Digital Tektronix, Hewlett-Packard, Sequent, Calcomp, AT&T, Apollo, Xerox, Sony, Sun, Apple, Bull, IBM, and Fujitsu. Members agree to $150K over 3 years. Affiliates agree to $15K over 3 years and include INESC, Evans + Sutherland, Stellar, and Software Productivity. Much of the focus of the conference was on Toolkits -- that collection of things that sits above the Xlib layer and provides a meaningful interface to X. The main emphasis was on the Xtk toolkit which supports objects called widgets. Widgets are small objects, like scroll bars, text, menus, button boxes, label boxes, command boxes, Boolean boxes, and radio buttons. Most of the objects seem small. Application programs then create instances of the objects and combine them in interesting ways. Xtk uses its own object-oriented approach in C to create a class structure for these objects. C++ was not used since, at that time, there was no public domain support for it. (Gnu C++ is now available). An alternative approach is the Andrew toolkit, which is meant to creat much larger objects: text editors, graphics editors, spreadsheets, rasters, and so on. Applications are objects and may contain other objects. The data state of objects are stored in files, and an application is then an editor for that object. Again, an object-oriented system has been created in C to support these objects. The main reason for not using C++ is that the Andrew toolkit will dynamically load the code supporting an object as necessary; C++ does not allow dynamic loading. It would seem that the Andrew toolkit and Xtk are attacking different problems. Both look useful for their differing arenas. Combining them both into one toolkit might be a good idea. The X Testing Consortium has been formed and work is proceeding on a suite of validation tests for X. The talk by Joe Almodovar of Calcomp on performance testing of X was particularly interesting. Postscript came up in two ways. First there was a Birds-of-a-Feather on Display Postscript from Adobe. Adobe suggested that window systems do three things: (1) Real Estate Management, (2) Imaging, and (3) Input. Display Postscript is only concerned with (2) Imaging. The suggestion is to create an extension to the X protocol that allows clients to download and execute Postscript code in the X server. Compared with the more ambitious goals of NeWS, this is a disappointment. Another presentation described the design of the merged X11/NeWS system. The merged system maintains a common set of windows/canvases and device/event handling routines. These are all controlled in NeWS by a Postscript interpreter. Generalizing this, they are adding an X interpreter that is a peer of the Postscript interpreter. This could, in fact, be easily generalized further to allow any of a number of protocol interpreters (X11, X10, NeWS, Andrew, ...) which all manipulate the same supporting window and event data structures and routines. Each of the interpreters runs in one or more lightweight processes, and since the window/event structures are shared by all, it should even be possible (although bizarre) to have both NeWS and X11 working on the same windows. The source for merged X11/NeWS will be on the Unix distribution tape from AT&T (remember AT&T is buying a large part of Sun), although there was quite a bit of rumbling at the conference for having it on the MIT X11 tape too (instead?). AT&T presented a very interesting approach to widgets using a Truth Maintenance System. Relationships between objects is defined in the TMS and when things change (like a window is resized), the TMS tries to determine how to modify the properties of the objects to re-establish the relationships which have been defined. So, for example, two slider objects can be defined, one for Fahrenheit and one for Celsius with the values related by the transformation equation. Moving one slider would automatically cause the other to be adjusted appropriately. Seems similar to ThingLab. Hewlett-Packard presented a system for having multiple users be able to see the same windows on different screens at the same time. They did it by changing the Xlib library, so applications must be linked to the right library to do this. David Rosenthal of Sun pointed out that this can be better done (with no change to applications) by having a pseudo-X server which acts like an X server to clients but then broadcasts the client requests to many real X servers, and merges the replies from the X servers into a single reply to the real application. This is the structure of the Vis system from MCC. Bellcore reported similar work. -- James Peterson james.peterson@mcc.com or ...sally!im4u!milano!peterson