[comp.windows.x.motif] UIL summary

doyle@doyled.b23b.ingr (Doyle C. Davidson) (06/27/91)

A while back, I asked for comments on people's experience with UIL.

**MY GOAL**: To determine the best solution for developing LARGE
applications written in C and using the Motif toolkit.  The user 
interface appearance should be modifyable without access to the C code 
or a need to recompile any C code so as to allow foreign language 
translators the ability to convert to application to a particular 
language and style.  Thus internationalization is an important 
requirement as well as efficiency of design.  Motif 1.2 and X11R5
is supposed to solve most internationalization issues as I 
understand it.  Please correct me if I am wrong.

>>>>>>>>>>>>>> Begin personal opinion <<<<<<<<<<<<<<<<<<<

As an application developer, I shouldn't even be exposed
to UIL, WCL or any other "interface storage mechanism".
Ideally, I should use a WYSIWIG interface builder and 
hopefully never have to write a single line of code to 
descripe my widget layout (as long as it's static).

I have seen this done with some proprietary windowing
systems and toolkits.  Those same users that have started
programming in Motif shudder at the work they have to do.
I tell them to be patient and remember what life was like
before they had their form builder.  I'm still waiting to
see a good one (IMHO) for Motif.

Someone once said WCL and EDITRES would be all that he
would ever need.  I don't think so.  Not without a stack
of manuals at your side.

Back to the summary...

>>>>>>>>>>>>>> End personal opinion <<<<<<<<<<<<<<<<<<<

The following is a summary of input from many people,  I have
attempted to reduce to simple statements that I hope have not
been taken out of context.  Please feel free to comment on 
these statements and/or correct them.

All of the following is mostly based on X11R4, Motif 1.1

- UIL is distinct from C and an end user/internationalizer
	can modify the UIL files without needing access to
	the C compiler in order to change the interface.

- Resource file must still be used in either method to allow
	the end user to customize the application using the
	traditional X resource mechanism.

- There exist interface builders that input and output UIL.
	This hopefully will avoid one having to learn the UIL syntax.

- UIL compiles quick and usually does not require C recompile/link
	Adding new callbacks for example WILL require some C code
	changes also.

- UIL is slower than C.  UIL takes the hit when creating the widgets
	but once done, the performance should be identical.

- UIL has poor error reporting

- UIL is not dynamic (no run time modifications)

- UIL compiler core dumps on occasions on my test system.

- UIL is poorly documented

- UIL is not a "good" programming language.  It is a static presentation 
	description language not a dialog scription language.

- UIL gives nothing more than can be described in C

- UIL files are verbose and become rather large

- break up UIL files for maintainability and possible performance
	improvements (only load what is needed)

- Only fetch parts of the interface in UIL as needed to improve performance

- In general reuse components where applicable to improve performance.
	E.g.  have only one dialog box and change it's message.

- UIL files can be reloaded?

- Use WCL? - Using Xrm, you can create dynamic interfaces at runtime
	But there are no known WYSIWIG builders for WCl.
	I am aware of some of the advantages of using WCL but is not
	part of this discussion.

- You can't unmanage convenienve widgets from UIL

- Preprocessing UIL make things better.  Unfortunately a preprocessor
	must be invoked manually.

- "Form builders are more trouble for real applications" -- anonymous
	Some people feel that form builders can limit the functionality
	of the final product.

- To access UIL widgets, invoke a RegisterWidget callback as part of
	the MrmNcreateCallback.  This is a common avenue for widget
	initialization code that cannot be done from UIL.  Special
	callbacks, event handlers...

- UIL increases program size due to extra libraries. (-lUil -lMrm)

- New widgets CAN be added to UIL.

- User written converters are not acccesible from UIL?

- UIL has a maximum line length of 132 chars

- Most everything that can be done with resources can be done with UIL.

- Most everything that can be done with UIL can be done with resources
	and an appropriate type converter.  See WCL for a demo.

Oh, and just to beat Martin Brunecky to the punch, er post :-)
    "UIL?  Hated it!"

Have a nice day!

Doyle
-------------------------------------------------------------------
Doyle C. Davidson              |
Intergraph Corp.               | Intergraph - Everywhere you look!!
Third Party Software           |
1 Madison Industrial Park      |
Huntsville, AL 35806           |  These comments are...
(205) 730-2000                 |
                               |         X-clusively my own.
..!uunet!ingr.com!doyle        |
- or - doyle@ingr.com          |
-------------------------------------------------------------------