[comp.windows.x] X Conference Trip Report

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