grh@cbnewsl.att.com (george.r.heuer) (06/19/91)
Fellow Netters, I recently posted a request for user information on two toolkits (OI and OLIT) that offered OPEN LOOK look and feel. I received a large number of responses from my post. Below are some edited comments that I have extracted from the mail I received. Randy Heuer grh@cbnewsl.att.com Comments from OI/OLIT users: -------------------------------------------------------------------------- ...bob klein... att!druhi!rmk I have been using the OI toolkit for over two years now. I was the first AT&T person to use the toolkit from Solbourne because I have a working relationship with the people at Solbourne. Anyway I have used OI sucessfully in two large C++ projects. APT was about 100K lines of C++ and my current project GHOST is about 20K lines of C++ code (and growing daily). In general, my experiences with OI have been very good. Of course I suffered through many of the original alpha and beta versions of the code. But now I would heartily recommend usage of the software. It allows me to not have to concentrate on the user interface aspects of the software project. I can do what I need to do simply and quickly and can concentrate my efforts on the real programming problems. -------------------------------------------------------------------------- From: matt@saber.com Yup, I'd say we know quite a lot about OI at this point, having been working with it for a few months. I'm not quite sure what you want to know, however. Overall, it and InterViews are the only credible C++ UI toolkits I've ever seen, and InterViews ignores the "big two" application style guidelines, so ... OI is worlds ahead of OLIT, for a number of reasons. One is simply that it's hard to provide the illusion of a class hierarchy and inheritance mechanism in C, and the Intrinsics model does a pretty poor job of it, while OI has the benefit of being a C++ toolkit. We're subclassing OI like crazy to provide specialized bits of behavior, and it's so easy one finds it hard not to pity people who are still working with Xt. Programming languages aside, the OI designers have done a few things in ways that are fundamentally different than I've seen anyone else do them. Probably the most interesting is the separation between the OI object tree and the X11 window tree -- removing the restriction that the window hierarchy and the object hierarchy be isomorphic allows considerably more flexibility in application design and behavior than I've seen in any other toolkit. Combine that with dynamic reparenting, and with the exceptionally strong use of resources, actions, translations, and accelerators in OI, and you've got what I believe to be the best user interface toolkit you'll find outside of NeXT. If I had to GUESS, though, I'd say you can expect about a 25 - 40% reduction in user interface code using OI. For example, I recently wrote a color browser/editor in OI (in about 6 hours!) that does just about everything xcoloredit does. XColoredit is about 1600 lines of C code, using widgets. ColorView is about 750 lines of C++ code. ColorView, being an OI application, also provides Open Look 2D, Open Look 3D, and Motif visual behavior and interaction semantics. As far as performance goes, it appears that OI applications written with the current version of the toolkit tend to be slightly smaller than their Motif-based counterparts, about the same size as their XView-based counterparts, and perform about as well as either XView or OSF/Motif toolkit applications. -------------------------------------------------------------------------- George Kakatsakis 303-772-3400 georgek@Solbourne.COM I am the engineering manager responsible for the OI toolkit. If you want additional information I can put you in touch with real users. These are people putting together internal applications at Fortune 500 companys and a couple ISVs. I can also get you in touch with internal AT&T sites that are basing much of their application development on OI. Feel free to call anytime. -------------------------------------------------------------------------- I've worked with OLIT and played around a small bit with OI (just enough to be dangerous :-) There are various things you should consider: 1. Compatability with other tools 2. Maintainability The OLIT toolkit is an Intrinsics-based toolkit - which means that anyone who knows about X Windows Intrinsics will know how to write a GUI with OLIT. If, in the future, you decide to go to another interface that is Intrinsics-based, you shouldn't have too much of a problem. Also, OLIT is supported by both Sun and AT&T, so you will not have to worry about its disappearance any time soon. OI, on the other hand, has the advantage of a C++-based design (OLIT is a C-based toolkit. If you plan on standardizing on C++, you will not get the benefit of any "classes" from OLIT). Anyway, OI is a class library that is very powerful, apparently very intuitive, and very incompatible with any X-Window Intrinsics-based toolkits (OI is compatible with X Windows on the Xlib level). If you have people that are familiar with the Intrinsics, they can chuck that knowledge out the window with OI. Also, since most of the people on the net seem to be more familiar with Intrinsics-based toolkits, you're more likely to get help with OLIT than with OI. OI has the additional advantage that you can dynamically choose between OpenLook and Motif interfaces, although the early version I had was pretty primitive (I know the current version is supposed to look really cool in either mode)...and if you're only concerned about OpenLook, than this is not too much of an advantage. In summary, from a technical perspective, OI is superior to OLIT. It's C++ based design lends itself to better integration into C++ based projects. However, unless more people start using it, there isn't enough of a knowledge base to draw upon in times of need (as a matter of fact, the only people I can remember talking about OI on the net were the folks from Solbourne - ie. Tom et. al). -------------------------------------------------------------------------- From: daw@honshu.att.com (David Wolverton) I would probably try OI in your situation (fresh start/using C++) assuming I did not get any strong negative reaction from the net. The OI toolkit is better integrated into the C++ type system (i.e. object oriented) than is OLIT, which should help make your system's overall design cleaner. The "level of abstraction" of both toolkits seemed to be comparable, but then I don't have actual experience with OI. There is the benefit of Motif GUI "for free" in OI, but that does not seem to be an important factor in your case. A drawback of OI is that it has slightly less industry momentum behind it than OLIT, with Sun and USL both pushing OLIT, but only USL pushing OI (I don't know how hard USL is pushing OI compared to OLIT). The OLIT product I used (vers. 2 with extensions) worked well, had a reasonable level of bugs (not 0, but not too many either), and had OK (not great) documentation. OLIT's performance may be slightly better then OI's (not totally sure of this), but I would venture a guess that the performance of either of these toolkits will not be a bottleneck in most systems. -------------------------------------------------------------------------- uunet!tdatirv!sarima (Stanley Friesen) My preference would be for OI. For three basic reasons: 1. OI is a C++ toolkit, and will thus mesh better with the rest of your project. (While OLIT is nominally object oriented, this is hacked on top of standard C, and its style certainly is not easily coordinated with C++. Just the differenc in meaning of a prototype with empty parenthesis in a header could kill you). 2. As I understand it, OI is switchable between OpenLook and Motif, and I believe in flexibility. (OLIT is a pure OpenLook toolkit). (I may be wrong here, since I do not have access to the OI docs). (Since both Motif and OpenLook are here to stay, you need to support both if possible - a switchable toolkit is the easiest way). 3. OLIT, as an Xt Intrinsics based toolkit, is very difficult to program. (It is full of idiot little details that must be gotten *exactly* right). (Not only must you create all of the widgets (== objects), you must hand them configuration data, which often require a great deal of tuning - just read comp.windows.x for awhile to get some idea of the problems). -------------------------------------------------------------------------- Randy Brown (uunet!erik!rbrown) We use OLIT. and have for about 18 months. It works. We use Wcl, as published on comp.sources.x and on export.lcs.mit.edu, which allows the widget instance tree and all callbacks to be specified in the resource files, thus eliminating all the tedious widget creation code and reducing our chores to writing callbacks. This scheme works well. In particular, it works better than the Motif toolkit, which we tried for about 8 months. It was buggy and there were MANY undocumented side-effects and undocumented "convenience" functions. We really couldn't get our work done as fast with Motif, since we spent so much time on workarounds. We use C, not C++. (Not my decision... ) OI certainly looks fascinating. It, like Xt with Wcl, makes heavy use of the resource database. In fact, it is being modified to make even more use of resources. I wish I could report on experiences with it... We also tried XView. (We've been doing X for more than two years.) It's simply not as flexible as OLIT or OI, and is reported to have some limitations irritating to those not coming from a SunView background. For one, it makes very limited use of the resource database. -------------------------------------------------------------------------- From: malbert@govt.shearson.com (Marc Albert) If you want real OpenLook conformity don't use OI. I use both OI and OLIT and I prefer OLIT. The newest version, due out any day now, makes it pretty complete. I don't know how well it will work with c++ though. -------------------------------------------------------------------------- From: djb@cborion.cb.att.com (David J. Bryant) My project and several of our customers and development partners have been using the OLIT toolkit for almost two years now. While we've had some problems (mostly in the early days with OLIT 1.0), on the whole we've been pleased with the OLIT toolkit and the support we've been able to get from USL and Sun. We have had some experience mixing C++ and C in order to use OLIT, and things have gone well. In general, I have a couple of reasons for continuing to use OLIT: 1) It is based on the industry standard (and in some cases, like government applications, mandatory) Xt Intrinsics interface 2) It is available on Sun, AT&T 6386, and HP systems, with DEC and IBM support expected later on this year. Vendor support has been good, and binary offerings are what we and most of our customers require. 3) C is still more widely available than C++ 4) OLIT offers more immediate access to toolkit object ("widget") improvements and evolved adherence to the Open Look specification We've looked at OI and are continuing to track new releases from Solbourne. (In fact, Solbourne is just finishing a significant update that I'm trying to get my hands on.) I consider OI's strongpoints to be: 1) Decoupling from Open Look and OSF/Motif look and feels 2) "True" C++ object-oriented implementation If OI were available on more hardware platforms (which is important to us) and were more agressively supported as a commercial binary product, it would perhaps be of more interest to us for ongoing GUI development. -------------------------------------------------------------------------- From: jk@acpy01 (John Kant ) Sun's OLIT is essentially a port of AT&T's Xt+ OPEN LOOK version to the Sun platform, meaning that you are using C and the OPEN LOOK environment. OI on the other hand is C++ orientated and uses both the OPEN LOOK and Motif environments (although it does not give the OPEN LOOK or Motif widgets, but rather it's own, but adequate, widget set). The current release of OLIT on Sun is still '2-D' (version 2.0), the next release of OPEN LOOK for AT&T and OLIT version for Sun, will be '3-D'. OI already comes with the '3-D' look. No horror stories, both OLIT, OI and AT&T's OPEN LOOK work just great!. -------------------------------------------------------------------------- From ihlpa!mlgtw!mltga!djones Working inside an AT&T company (AT&T Network Systems in the UK) we had to make a similar decision. I was a bit confused at first because OLIT provided with openwin on SUNs is in fact the USL OI kit (sometimes knows as Xt+). For us the decision was between the SUN Xview OpenLook toolkit and USL OpenLook Toolkit. On close scrutiny we chose the USL Toolkit for the following reasons Intrisics (Xt) based -- this means the resource file and resource manager can be used. In the Xview toolkit most of the resources have to be "hard-coded" USL kit comes with SystemVR4 -- although our initial platform is to be SUNs we may need to port our application to other platforms. When we made our decision, we were unsure of how easy it would be to get the Xview source (we do not have FTP access here) and so assuming we would probably be targeted as "vanilla System V R4" systems we thought the USL toolkit would be a better choice. Performance -- Xview was written as a portability kit for sunview applications to aid migration. I have heard it said ( but have no figures) that the performance of the USL Xt kit is much better.