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 | -------------------------------------------------------------------