From: david@breslau.ap.mchp.sni.de (David Smyth)
Newsgroups: fj.mail-lists.x-window
Subject: Re: Opinion of O'Reilly Guides to the X Window System (UIL)
Date: 18 Nov 92 01:59:38 GMT
Distribution: fj
Organization: Siemens-Nixdorf AG

Date: 17 Nov 92 08:47:03 GMT
Message-Id: <1eabi7INN7hs@horus.ap.mchp.sni.de>
Newsgroups: comp.windows.x

martin@mjs486.UUCP (Martin J. Schedlbauer) writes:
>helding@pooh.sdd.trw.com (steve helding) writes:
>>pdc@dcs.ed.ac.uk (Paul Crowley) writes:
>>
>>>UIL seems pretty well universally acknowledged to be unusable, and
>>>inferior in every respect to other application builders such as the free
>>>Wcl 2.0.  I guess O'Reilly are going for completeness, but I can see no
>>>reason why any but a very few people might want to know how to use it.
>>
>>Being somewhat new to X and Motif I was wondering about the assertion made
>>above.  We use Builder Xcessory which optionally generates UIL.  UIL seems
>
>I have recently developed an advanced Motif course that teaches UIL in
>detail. Although I've run into a few attendees that don't much care for UIL,
>the majority of attendees appreciate the simplicity of UIL. ...
>
>I've also found that for those folks that program in a language other than
>C (e.g. Ada) that they prefer UIL. They don't have to learn the Ada-Motif/X
>bindings.
>
>I suspect much of the dislike for UIL stems from ...

First, thanks for the complement, Paul.

Wcl and UIL are, in many ways, very similar.  The basic idea of both is
to specify the look and feel of the user interface in a form
independent of the logic of the application.

Wcl is a thin layer over Xrm, while UIL is a complete "replacement"
for Xrm - but Xrm is not replaced, it still exists and still is
used IN ADDITION TO UIL.

Xrm is loaded during XtInitialize, and is searched when each widget
is created.  Xt always fetches all widget resources from Xrm when
each widget is created.

Wcl simply also fetches the widget types, and the widget heirarchy
from Xrm. For example:

    foo.wcCreate:      SomeWidgetClass
    *foo.wcPopups:     dialog1 dialog2
    *foo.wcChildren:   manager1 manager2 buttonA buttonB

UIL, on the other hand, DUPLICATES everything Xrm does in addition to
adding widget type and heirarchy specifications.  Xrm is not
eliminated: Xt and the widgets still access the Xrm database.  Whether
or not the resource value is specified in resources (as one would do it
using Wcl) or is set by UIL or by arguments passed to XtCreateWidget(),
the resource values are still fetched from the resource database.  The
UIL values, or the arguments passed to XtCreateWidget() simply override
the resource values.

Programmers still need to know about Xrm.  Users still need to know about
Xrm.  But with UIL, programmers ALSO need to learn about UIL.


The worst part is that not only does UIL simply add (significantly)
to the run-time overhead, but it also adds to the hassle people must
endure to use new widgets.  Again, the difference between UIL and
Wcl is that UIL duplicates information and capability, Wcl simply
uses what it already there.  Take a widget: Wcl only needs the name
and the widget class pointer.  Period.  UIL needs to know about all
the resources and their types.  This is silly, because the Widgets
already know their resources and types.  Wcl lets the widgets get
the right types from the Xrm database, UIL needs to do everything the
widget+Xrm+converters already do.

This is an important point.  I doubt if anyone can do anything serious
without special widget classes.  At least, one must deal with new releases
of widget classes during the life of the application. 

> ... My course addresses those issues and quite often
>former UIL-bashers are won over (or at least they tolerate my teaching of
>UIL :)

An interesting thing happened last year about this time.  Some guy
attended a Motif programming course where they presented UIL.  He
figured we should not use some home-brew Wcl thingy, we should use the
standard UIL.  He organized a meeting with organizational Brass to get
a mandate to stop Wcl and get everyone to use UIL.  He came in and
asked me about Wcl.  I said "Love to help, but I'm busy this week -
here's the distribution on floppy, build it and play with it."  I heard
nothing more until the meeting...

The next Monday morning when we had this meeting, he had become (and
still is) a big booster for Wcl.  I had to stand up for UIL just so it
did not look TOO bad!

>P.S. Please watch for my UIL tutorial at the X conference.

... and my tutorial and BOF on Wcl

---------------------------------------------------------------------------
David E. Smyth			David.Smyth@ap.mchp.sni.de
Object/X Researcher		AP 154, Carl-Wery-Str 22, Munich 83 Germany
	Research Grant provided by Esprit Investments Ltd, 
	major sponsor Siemens Nixdorf Informationssysteme AG