[comp.windows.x] Re^2: Gadgets in Motif

jcb@frisbee.Sun.COM (Jim Becker) (08/18/89)

graham@fuel.dec.com (kris graham) writes:


->>Gadgets versus Widgets in Motif
->>-------------------------------

->>Motif has introduced the user interface object "Gadget" as an alternative to
->>"windowless" Widgets ( arrow, button, label, separator etc).

->>Is the advantage converting a Widget into a functionally equilavalent Gadget
->>primarily speed, memory savings or both? Is this a Motif-only toolkit extension?

->Gadgets have been in the DECwindows toolkit long before Motif  was created.  I  
->(am not sure) believe the MIT folks have it also.


Gadgets have been used in form and function in the Intuition interface
system for the Amiga since 1985. The names the same and the
implementation technique is a lot simpler to understand and utilize.


->The implementors of gadgets say that there are tremendous performance improvements
->both in execution speed and data space.....for *both* application and server processes....
->and reduces the incidence of lost functionality associated with widgets.


It has always been very difficult for me to understand the reasons
behind making each interactive element of the interface a server level
resource, when it should simply be regions of the screen defining
interactive elements.

The drain of the performance of the Server has been clearly shown with
early widget programs. How has it happened that so many intelligent
people have assumed that windows are a cheap resource that can be used
freely?


->-- 
->Christopher Graham          
->Digital Equipment Corp            
->Ultrix Resource Center                                         
->New York City  (usual disclaimers go in here)

-- 
+---------------------------------------------------------+
| Jim Becker	jcb@sun.com    ::  Sun Microsystems, Inc. |

rws@EXPO.LCS.MIT.EDU (08/18/89)

    It has always been very difficult for me to understand the reasons
    behind making each interactive element of the interface a server level
    resource, when it should simply be regions of the screen defining
    interactive elements.

The argument is hardly as trivial as you make it sound.  There are lots of
potential reasons on both sides of this issue.  I'm sure the Amiga is a nice
system, but it isn't X, and the same arguments don't necessarily apply.  In
the X world, there are issues like having elements with different Visuals,
different depths, different colormaps.  There are issues like establishing
non-conflicing passive grabs.  There are issues like avoiding duplicating
lots of complicated server machinery on the client side.

    The drain of the performance of the Server has been clearly shown with
    early widget programs.

Yes, although it's mostly been shown on early server implementations.  The
performance drain has been demonstrated most clearly, I think, with menus
that have each item as a separate window.  I'm happy to agree that's a bad
design, but I wouldn't want to blindly extrapolate from that to the conclusion
that no windows is good windows.  I'm not saying gadgets are a bad idea, but
they bring on their own set of problems.

    How has it happened that so many intelligent
    people have assumed that windows are a cheap resource that can be used
    freely?

How has it happened that so many intelligent people have assumed that windows
can't be made a whole lot cheaper?  R4, here we come ...

ben@hpcvlx.HP.COM (Benjamin Ellsworth) (08/18/89)

>>... The latter may take some careful enhancements to the Xt
>>Intrinsics.
>
> Or, you can wait for the R4 intrinsics, which will fully support 
> gadgets, compatibly with Motif, XUI, the Athena widgets, or any other
> R3-based widget set.
>
>	-paul asente

Yeah, but...

There are a specific and fairly common set of design 
decisions/compromises that are embodied in the three gadget
implementations that you mention.  It is that design which is supported
in a general way by R4.  I was alluding to the potential for a 
conflicting set of design requirements that might require changes to
the intrinsics which were different than the R4 set of changes.

If you are interested in an "industry standard" or quick approach, use
R4.  If you are interested in exploring the extents and limits of the 
"Xt" technology, do whatever looks promising -- upto and including 
poking around in the intrinsics.

----
Ben

janssen@holmes (Bill Janssen) (08/19/89)

In article <122257@sun.Eng.Sun.COM>, jcb@frisbee (Jim Becker) writes:
>... How has it happened that so many intelligent
>people have assumed that windows are a cheap resource that can be used
>freely?

I thought that "the X Window System" was spec'ed that way?  Are you
implying that some implementations have failed to meet system design
goals?

Bill
--
 Bill Janssen        janssen.pa@xerox.com      (415) 494-4763
 Xerox Palo Alto Research Center
 3333 Coyote Hill Road, Palo Alto, California   94304

jg@max.crl.dec.com (Jim Gettys) (08/29/89)

> I thought that "the X Window System" was spec'ed that way?  Are you
> implying that some implementations have failed to meet system design
> goals?

If you look at X10, you will find that windows used a small fraction of
the amount of memory of
windows in the current (R3) sample server implementation.  The X11
sample server implementation was
originally done under tremendous time pressure (I know R1 almost killed
me and those people working
on it with me).  Getting the spec implemented was more important than
getting it small and fast
(or at least that is what everyone was telling us).

I think you'll see R4 server memory usage dramatically better than R3,
and very much higher windowing
performance, given the work that Bob, Kieth Packard, and Joel McCormack
have done.  But I'll let Bob 
comment on how much better when the time is appropriate; I know I am
extremely happy with what I know about
it :-).

So yes, windows should be regarded as "cheap".  They are not "free"
however.  But as I've
stayed away from toolkit wars, I'll stay away from commenting on whether
gadgets are a good idea or not.
				- Jim

marbru@auto-trol.UUCP (Martin Brunecky) (08/30/89)

> But as I've
> stayed away from toolkit wars, I'll stay away from commenting on whether
> gadgets are a good idea or not.

Why scared ?


The issue of gadget is like everything else. No matter if they are good or
bad, they may be MISUSED.

I myself like the concept of "ObjectClass", using "objects" for things
like WsText widget source/sink, colormap gadget, GC gadget etc. YES,
there are holes in R3 Xt support, but still - it gives us object oriented
environment in "C", with a LOTS of good features.

Now, there are many flavors of Gadgets. One of them pretty much reminds me
a doctor curing SYMPTOMS, not the DISEASE.


DISEASE, in this particular case, is a STATIC creation of ALL user interface
objects ( menu cascade may need hundreds of objects ). However, in a real
life, only a fraction of those objects will be active (mapped, used) at
any given time - but all of them will eat resources (yyap, memory is virtual).
Now, symptomatic treatment will try to make ALL those objects "smaller",
"cheaper", while the REAL cure is DYNAMICS. Build the user interface which
re-uses objects (such as menus, buttons). Your menu cascade will require
30 buttons instead of 600 (and you will learn how to use SetValues).
Naturally, you will need something more reasonable than UIL ( Unfriendly
Idiotic Language) - but that's another subject.


Gadgets that require a manager widget re-implementing lots of the server
functionality (such as tracking pointer to generate gadget enter/leave events,
generating expose events) not only create overhead (lots of protocol traffic,
potential for receive buffers overflow when client is busy etc.etc.etc.)
They have another problem.
To do it's things "right", the manager widget makes ASSUMPTIONS about children.
He "knows" what children wil be, how they behave, how to highlight them etc.
And I consider that fundamentally  WRONG.
WRONG, because it makes it really difficult to add/augment/modify/enhance
existing widget set - and how often are we happy with what we get.

###############################################################################
Martin Brunecky, Auto-trol Technology Corporation,
12500 North Washington Street, Denver, CO-80241-2404
(303) 252-2499                                        ncar!ico!auto-trol!marbru
###############################################################################