Archive-name: portable-GUI-software/part1 Last-modified: Tue Apr 5 10:45:27 PDT 1994 Version: 1.8 ----------------------------------- Copyright 1993, Wade Guthrie. Permission is granted to copy and redistribute this document so long as it is unmodified (including the part that explains where to get the FAQ free-of-charge) and the copyright remains in-tact. I'd appreciate it if you told me about any redistribution, but that's not strictly necessary. ----------------------------------- 0. CONTENTS -- part 1 -- I. WHAT'S NEW IN THIS ISSUE II. INTRODUCTION III. ABOUT THE IEEE PIGUI STANDARD IV. USER-INTERFACE APPROACHES V. FEATURES AND SUPPORTED PLATFORMS -- part 2 -- VI. VENDOR REPORTS VII. ACKNOWLEDGEMENTS I. WHAT'S NEW IN THIS ISSUE. . . Not nearly enough -- it's been a tough month. II. INTRODUCTION This posting is intended to shell-out as much information as I can find concerning platform-independent Graphical User Interface (PIGUI) development kits (actually, it's platform-independent APIs targeting various platform-DEPENDENT GUIs, but let's not get too picky). This list is being posted because I've seen a whole mess of requests for GUI portability information and, besides, I need this information as well. This document is maintained and periodically updated as a service to the net by Wade Guthrie (wade@nb.rockwell.com). Any corrections, updates, or other pertinent information are welcomed at that address. If you are a vendor of a PIGUI package (whether it's represented here or not), I encourage you to amend, annotate, and append to this document (and then, of course, send the revisions back to the author). IIa. Where to get this document. You can get the latest version of this FAQ (and, in fact, all the FAQs that appear in .answers) *FREE-OF-CHARGE* by anonymous FTP from 'rtfm.mit.edu'. This FAQ can be found in the following directory: /pub/usenet/comp.windows.misc. There are several mail servers that will do the FTP for you if you do not have access to FTP directly. IIb. What's a PIGUI? A PIGUI toolkit is a software library that a programmer uses to produce GUI code for multiple computer systems. The toolkit presents functions and/or objects (along with a programming approach) which is independent of which GUI the programmer is targeting. For the purposes of *this* document, a PIGUI must support the native look-and-feel for GUIs under at least two different operating systems (so just supporting OpenLook and Motif on two Unix boxes doesn't count). The toolkit does not necessarily provide any additional portability features. Now, let's consider Petula Sniggly, a programmer who decides she wants to build the ultimate computer program. This thing is going to be so cool that everyone anywhere near a CPU will want to use it, so Petula targets her program for every type of computer on the planet. She considers getting herself a PIGUI toolkit to handle the GUI portion of her code. With a PIGUI toolkit, when she wants to put a menu on the screen, she calls the toolkit's "PIGUI_menu" function. When she compiles her code with the "Macintosh" flag set, the PIGUI library puts a Mac menu on the screen in response to the PIGUI_menu call. When she compiles her code with the "Motif" flag set, the call causes the library to put-up a Motif-style menu. All this happens (theoretically) without Petula having to change her source code. If she is careful to make her non-GUI code portable, she would have a single program (with a single source) that works on multiple platforms. There is no free lunch, so our heroine Petula has a few things to consider before deciding whether to use a PIGUI. First, most (and maybe 'all' depending on whom you believe) of the PIGUIs will slow the execution of your code. You are also limited to the feature set provided by the PIGUI unless you want to code around the toolkit (but, then again, why would you buy the PIGUI in the first place if you're going to code around it?). Bugs in any toolset (PIGUI or otherwise) filter down to your production code. Fewer people know how to code any specific PIGUI than do a platform-specific GUI (e.g., MS-Windows), so wizardly help will be limited. The PIGUI only deals with the GUI aspects of your program -- you're on your own for other portability issues. Finally, if the vendor goes out of business you may be out-of-luck for support of future OS enhancements (source code can ease, but not eliminate, the pain of a vendor closing its doors). IIc. A word about language choice. Many C programmers will look at the purchase of a PIGUI library as a great opportunity to migrate to C++. If the library takes full advantage of C++, the programmer will have to use C++ methodologies (not just a C++ compiler with C syntax) to use it. When one ports a C program to such a library, one should expect to invest a *significant* amount of effort learning about (and modifying his code to take advantage of) classes, inheritance, and constructors in order to complete the port. Of course, if one wants his C code to become C++ code, this is a necessary exercise anyway. IId. What else is in this Document? After the introductory stuff, you'll find some more detailed information about PIGUIs in general followed by tables and prose that describe specific PIGUI toolkits. The limits placed on which products are discussed in this posting are pretty-much provided in the title. The products listed here must be platform-independent and support at least two different OSs. The product must be shipping to the general public (i.e., no beta-only or pre-beta PIGUIs). Moreover, these packages focus on GUI portability, though some provide a larger breadth of portability features (and, I've tried to list those, where applicable). No limits (at either the high or the low end) have been placed on price, even though the prices in the field vary by more than an order of magnitude (and, now, there are some free PIGUI kits). Note that in addition to one of the products listed here, you'll need (natch) one of the supported host machines, a compiler or interpreter of the appropriate type, and, for layered GUI packages (q.v.), the basic GUI builder for that platform. IIe. More Legal Barf. At this point, I find it necessary (even though this is covered by my .sig) to say that this FAQ is my personal work and that this FAQ does *IN NO WAY* indicate, reveal, imply, infer, allude to, display, suggest, symbolize, expose, demonstrate, hint at, or in any way have anything to do with the thoughts, policies, suggestions, reflections, decisions, theories, sentiments, ponderings, rules, dreams, or beliefs of my employer. I use a lot of names that are trademarks in this FAQ. At no time should the use of a trademarked name be construed as contesting the trademark. Those trademarks belong to their respective trademark holders. If lots of stuff in this posting looks familiar to you, you're not hallucinating (well, maybe you are, but not regarding this). Much of the format (and some of the words) of this FAQ have been lifted (with permission -- thanks Eric) from Eric Raymond's PC-UNIX FAQ. IIf. Glossary. Here are some words that you'll find in this FAQ along with working definitions for them. API Applications Programming Interface. This is what the programmer sees when he's using a software development kit. Normally, this would be a set of function calls and/or objects. CDE The GUI part of COSE (q.v.) is CDE, the Common Desktop Environment which includes hypertext help, IPC (q.v.), printer support, and a bunch of other stuff. It looks like CDE certification will be withheld from most (if not all) PIGUIs since CDE includes its own API -- you have to comply with the API to be certified. COSE Common Open Software Environment. This is the industry-agreed- upon look-and-feel that will replace Motif and OpenLook. It's basically Motif with some add-ons. CUI Character User Interface. This is like a graphical user interface, but it's implemented only with characters (e.g., ASCII). Many Platform-Independent CUIs are developed using the public-domain curses package. DDE Dynamic Data Exchange. This is a method of inter-process communication under Microsoft Windows. DDEML Microsoft Windows' Dynamic Data Exchange Management Library. DLL Dynamically Linked Libraries. These are, essentially, shared libraries under Microsoft Windows. FAQ Frequently Asked Questions. A list. . .like THIS one! font A specific set of shapes for a character set. Old English is one example of a font (it's more complicated than that, but I'm not going into it here). GDI Microsoft Windows' Graphical Drawing Interface. GUI Graphical User Interface. If you don't know what this is already, you have quite a bit of homework before this FAQ will mean anything to you. IPC Inter-process Communication. It's a generic term for the way separate processes (or tasks) under an operating system talk to each other. MDI Microsoft Windows' Multiple Document Interface. An MDI parent window is intended to be the main window of an application and MDI child windows represent separate documents or sessions (or whatever) under that application. Motif This is one of the choices of look-and-feel under the X Window system. In order to have one's software certified as Motif compliant, one must pay a fee to the Open Software Foundation (OSF). OpenLook This is one of the choices of look-and-feel under the X Window system. It was originally championed by Sun Microsystems before they agreed to support COSE (q.v.). PCL Hewlett Packard's Printer Control Language. It's a language for getting HP printers to display what you want. PIGUI Platform-Independent Graphical User Interface. Actually, it refers to a platform-independent API (q.v.). PM OS/2's Presentation Manager. This is the GUI under OS/2. PostScript This is a printer language owned by Adobe Systems. It's an interpreted language that is used by a wide variety of printers. SDK Software Development Kit. It's software to help a programmer build other software. Unicode This is an international (16-bits per character) character set in which all the characters from the various supported international languages co-exist at once. Among the supported character sets is the English alphabet (is there a more proper term?), Hebrew, and kanji. WYSIWYG What You See Is What You Get (pronounced Wizzy-Wig). It's a way of allowing the user of a package to see the package's output (in its ultimate format) while the user is developing using that package. Most WYSIWYG software is really WYSISWYG (pronounced Wizzy-Swig) -- What you see is sort-of what you get. Xlib This is the library of X-Windows functions distributed by MIT with the X Window system (hence, it's free -- just like X Windows). One can generate software that is compliant to the OpenLook or Motif look-and-feel (or any other, for that matter) using Xlib. YMMV Your Mileage May Vary. III. ABOUT THE IEEE PIGUI STANDARD Okay, so they don't call it a PIGUI. Scott Preece (preece@predator.urbana.mcd.mot.COM) is maintaining a FAQ (and posting it to comp.windows.x) regarding IEEE P1201.1, a draft standard for multi-GUI APIs. A synopsis of all this (some of which is stolen verbatim from Scott's FAQ) is below. If you want to know more about it, check-out the FAQ or contact Scott. The following was extracted from various pieces of that FAQ. "IEEE working group P1201.1 is writing a standard for a multi-GUI API, an API that would be implementable on top of a wide range of GUI bases. The API must be independent of the look and feel of the delivered interface, yet must support a wide range of interface functionality. "The group has focused its work on developing a programming language independent model of GUI programming, on which language specific bindings will be based. The model abstracts core elements of the computational model of several existing multi-GUI toolkits [...] expressed in an object-based computational model. [...the objects defined in the standard] do not correspond to the specific programming elements of any one GUI, but can be mapped onto the programming elements of any of the target GUIs. [...] several participants also agreed to sketch language bindings for several different languages, including C, C++, and Ada. "If resources continue to be available, we hope to be able to do a mock ballot this Summer and a formal ballot early in 1995. [...] The current public draft of P1201.1 is Draft 7, dated March 1993." IV. USER-INTERFACE APPROACHES Most, if not all, of the products in this FAQ take one of three approaches to providing platform independence. The two most common approaches are the "layered" and the "emulated" user interface but an up-and-coming approach is "API emulated" interface. Products using a layered interface access native, third party, GUI-building toolkits to provide the look-and-feel compliance for each particular GUI. Layered user interfaces have the advantage that, since they depend on other products which concentrate on a single GUI, they have to provide less software (and, hence, are usually less expensive) than emulated interfaces. Layered interfaces are also more likely to get the native look-and-feel correct on all platforms. Most of the PIGUI products in this FAQ fit in this category. In an emulated user interface, the PIGUI's resultant code produces low-level calls and all the look-and-feel compliance is handled by the PIGUI software itself (e.g., for OpenWindows support, the software would *NOT* produce an XView program that must be compiled with the XView toolkit; the software would produce code that interfaces directly with X intrinsics). To provide an emulated user interface, a vendor has to develop a lot of extra code for look-and-feel support. Emulated user interfaces have the advantage that someone on a Motif workstation, for example, can see how the Macintosh-style UI will look (since the look-and-feel is part of the product). Emulated interfaces have the opportunity to provide a faster GUI than does a layered interface; in addition, it does not require you to purchase (or learn how to use) other kits to build GUI software. A third approach to platform independence is emulating one of the supported target's APIs (usually, the Microsoft Windows API) to target other GUIs. With one of these products, one would program using the emulated API and the code would be (to the extent to which that the product provides portability) portable to other GUIs. V. FEATURES AND SUPPORTED PLATFORMS The products in this FAQ are pretty similar in their basic functionality; they each provide function calls or classes that allow the user to build windows, buttons (regular as well as radio buttons and check boxes), menus, menu bars, and the like. Areas of contention seem to be things such as: - availability and price of source code, - printer support, - support for international character sets, - capability to support draw-package-like features, - bitmap (and icon) support, - whether the product has a WYSIWYG GUI builder (most do), - the choice of implementation language, and - the approach to platform independence (see below). Of course, each user will have his own requirements; YMMV. Now, on to the comparisons. To interpret the tables below, bear in mind the following things: - If information for a cell is unknown, a period ('.') is placed there. It is the ultimate goal of the author to eliminate all of these. - If a PIGUI package does not support a feature or platform in the table, the cell is marked with a hyphen ('-'). - If a feature or platform is not currently supported, but that support is planned, the cell is marked with ('soon'). Support in the form of beta versions (as well as longer- lead versions) fit in this category. - If a price is known for a product, that price is inserted in the appropriate cell of the table. If that price is not known (but the feature is supported), the cell is marked with 'yes' -- it is hoped that all 'yes' entries will be replaced with prices "Real Soon Now". Note that prices in this FAQ are the MSRP (Manufacturer's Suggested Retail Price). The street price for some of these products can be *significantly* less. - Tables are annotated, where appropriate, with letters (in parenthesis where it doesn't take-up too much room). The appropriate notes are found below the table. Also note that as information changes, some of the notes will disappear. The note letters will not necessarily be in sequence -- get used to it. Another note: given that Sun Microsystems has announced its abandonment of OpenLook in favor of COSE, I'm not sure I'd hold my breath for the OpenLook betas in the tables below. It may just not be worth it for some of the vendors to support a product that has limited (at best) application. The following abbreviations are used throughout this document when there wasn't room for the complete name. App AppWare, Novell Aspect Aspect, Open Inc. Views C++/Views, Liant CLIM Common Lisp Interface Manager, several vendors CommonV Glockenspiel CommonView, Computer Associates DCLAP Don's Class Application library, Don Gilbert Galaxy Galaxy, Visix Guild Guild, Guild JAM JAM, JYACC. libWxm libWxm, Visual Solutions MAINWin MAINWin/Cross-Development Kit, MAINSoft Corporation Menuet Menuet/CPP, Autumn Hill Software, Inc. MEWEL MEWEL UIL, Magma Systems ObViews ObjectViews C++, Quest Windows Corporation OI Open Interface, Neuron Data Opus Opus, WNDX OpenUI OpenUI, Open Software Associates PSM Presentation Services Manager, Lancorp Pty Ltd. ScrMach Screen Machine, Objective Interface Systems, Inc. StarVie StarView, StarDivision SUIT Simple User Interface Toolkit, University of Virginia VisWork VisualWorks, ParcPlace Wind/U Wind/U, Bristol Technology wxWind wxWindows, Artificial Intelligence Applications Institute XVT XVT Portability Toolkit, XVT Software Inc. zApp zApp, Inmark Zinc Zinc, Zinc Table 1: PLATFORM VS. PRICE (US$ except where noted) Open- Next- Vendor ASCII DOS Win(s) Win/NT OS/2 Motif Look Mac PenOS Step ------- ----------------------------------------------------------------------- App(d) . soon yes soon soon yes - yes - . Aspect yes yes 1495 . . 2495 yes 1495 . . Views - soon 749 soon 995 1999 - yes . . CLIM . . . . . yes yes soon . . CommonV . . yes . yes yes soon soon . . DCLAP . . (k) . . (k) . (k) . . Galaxy - - 7800 soon 9600 (m) (m) 9600 - . Guild - - 895 895 895 soon - 895 - . JAM yes yes yes . . yes yes . . . libWxm - - (h) (h) (v) yes - (v) - . MAINWin - - (h) (h) (v) 5000n - (v) - . Menuet - 499 599 - 599 999 - . yes . MEWEL 1595 395u (h) (h) 795 - - (v) - . ObViews - - yes yes . yes - yes - . OI yes yes 5800 6850 6850 9850 9850 4800 . . Opus . 695 695 yes yes 695 695 695 . . OpenUI yes - 3500 soon 4900 7900g - 3500 (w) . PSM . . yes . . yes . soon . . ScrMach 495 495 1995 soon - (p) - - - - StarVie - - 499 soon 495 soon soon soon . . SUIT . (k) (k) . . (k) (k) (k) . . VisWork . . 2995 . 2995 4995 4995 2995 . . Wind/U - - (h) (h) (v) 9950 - (v) - . wxWind soon - free soon - free free - - . XVT(c) call 1450 1950 6300ab 1950 6300a 6300 1950 . . zApp - 495 495 495 695 soon - soon - . Zinc(e) 1499e 299e 299(f) 299(f) 299e 1499 - 299ej 299 . ------- ----------------------------------------------------------------------- Vendor ASCII DOS Win(s) Win/NT OS/2 Motif Open- Mac PenOS Next- Look Step (a) This is the price for platforms other than x86-based computers. For x86-based machines (under DOS/UNIX/Xenix -- where applicable), the price is $1950. (b) For non-x86 platforms, check for availability -- Alpha and MIPS supported. (c) Interactive design tool is $1200 extra ($2900 for non x86-based X-windows). The design tool is not available for the C++ product. (d) Novell're currently determining pricing information -- they use the term 'negotiated'. (e) Zinc requires a single-time purchase of the Zinc GUI engine. This is $499. After this price, the individual GUIs to be supported are added-on. (f) Win16, Win32s, and Win32 are packaged together. (g) for a PC-based Unix, we're talking $5850. (h) This product uses the MS Windows API; so, in that sense, it supports MS Windows. (j) Pre-release. (k) This product is free for non-commercial use. If you make a profit, you'll have to check with the vendor for pricing and availability. (m) The price is per machine. For $9600, you get Motif, OpenLook, CUA, and Microsoft Windows on a single machine. (n) The cost drops for subsequent copies. Number 2 is $3500 and number 3 is $2000. (p) The pricing here is a little complicated. It was explained to me as follows. "We have both systems based pricing and floating license pricing. The system based pricing runs from $3K (small Sun or SCO) to $24K (big VAX or Sun 2000). The Unix Motif floating license pricing is $6K for the first license and $3K for each additional license." (s) That's Microsoft Windows (TM). (u) Price does not include source code (the other MEWEL products do). (v) Microsoft Wings (scheduled to ship in the first half of 1994) can be used to port Windows API to Macintosh System 7. Micrografx's Mirrors can be used to port Windows source to OS/2. (w) Does work on PenOS systems, but does not *yet* have Pen extensions. (x) That's OpenLook. (y) That's NextStep. What we're looking at is two groups of products. The lower-priced group is usually C++, is a more recent introduction to the market, is almost always a layered GUI, and concentrates on PC-based operating systems. Products from the higher-priced group usually offer a more stable platform with both greater breadth and depth than does the previous group. In either case, the cost premium for UNIX support is usually a factor of 3 -- that is, the GUI package for a UNIX platform for any PIGUI product is usually 3 times as expensive as the version for DOS/MS-Windows. Other "personal" operating systems (e.g. OS/2 and the Mac) vary as to whether they follow the UNIX pricing or the PC pricing. These are merely observations, your mileage may vary. Table 2: FEATURES AND OTHER NIFTIES Vendor Type(p) Eval(a) Source Royalty Language Builder(g) ------- ----------------------------------------------------------------------- AppWare . . . no . (m) Aspect . 30 (e) no C yes Views layered (c) free no C++ yes CLIM . (u) . . Cmn Lisp (u) CommonV layered . yes no C++ . DCLAP . free free . C/C++ . Galaxy emulate (d) (e) no C/C++ yes Guild . . (f) no C yes JAM layered . yes no C yes libWxm API emu . . . . . MAINWin API emu 30 no (w) C/C++ $199 Menuet . . . . . . MEWEL API emu . (r) no C(s) (t) ObViews layered . . no C++ . OI emulate (x) . no C/C++ yes Opus emulate . . no . . OpenUI layered (q) (e,b) no C(h) yes PSM . . . yes . no ScrMach layered 30 (e) no Ada free StarVie layered 30 yes no C++ yes SUIT . free free . C . VisWork emulate (c) 100000 yes SmalTalk yes Wind/U API emu (v) (f) no C/C++ (t) wxWind . - free no C++ (n) XVT layered (y) yes no C/C++ yes zApp layered 60 free no C++ $499 Zinc layered 60 free no C++ yes ------- ----------------------------------------------------------------------- Vendor Type(p) Eval(a) Source Royalty Language Builder(g) (a) This is the number of days that the product can be evaluated. Inside this time, the software can be returned for full money back. (b) Open Software Associates is willing to make a deal for source on a case-by-case basis. (c) They offer a 30 day 'test drive' evaluation. This costs $50 (applicable toward cost of product). (d) Give them a P.O. They'll give it back if you don't like the product. Not sure what the pricing is. They also require a 1 week, $2500 course they require you to take to get an evaluation. (e) Source code is held in an escrow account. You can't get to it unless the company goes belly-up. This helps you protect your investment -- if the company goes belly-up, you can do the software maintenance yourself. (f) You can buy it, or you can get an escrow account. (g) This is a WYSIWYG GUI Builder. (h) Pascal, Cobol, and Ada are supported, too, but there wasn't room. (m) They've reconfigured AppMaker (for the Mac) and AppStudio (MS Windows) to be GUI builders. (n) Uses SunOS's DevGuide. (p) Type means 'emulated', 'layered', or 'API emulated'. This describes how the product approaches support for various GUIs. (q) They charge (about $500) for a 90 day (money applicable to purchase) evaluation period. Included is a 1-day training course and phone and fax support. (r) ASCII and OS/2 versions come with source for free. The DOS version is an additional $400 with source. (s) You can program in the MS Windows API or use MFC, OWL, or C++/Views. (t) Any MS Windows Application Builder will work. (u) Different LISP vendors support CLIM -- each provides a different set of options and pricing structures. (v) A 30 day evaluation costs $250. (w) MAINWin kind-of charges royalties. Every machine on which an application developed with MAINWin is to be run needs the a license for the shared libraries. The cost runs between $195 (quantity 1) and $156 (quantity 100) per machine. (x) These guys have a 'flexible evaluation structure'. (y) About $125 to evaluate the thing -- this includes a full set of of documentation. The following table makes the most sense for operating systems that work on various types of hardware (e.g., UNIX, Windows NT) rather than for OSs dedicated to a certain type of hardware (e.g., DOS, Microsoft Windows, Macintosh). A `y' indicates that support has been verified by a user report. A `c' indicates that the hardware/OS is claimed to work in vendor literature. An `e' indicates that this is the API emulated by the software. A `b' indicates that the hardware/OS is in beta. A `p' indicates that the hardware/OS is planned, but not yet in beta. A `.' indicates that whether this combination works is unknown. A `-' indicates that the vendor doesn't support that hardware. A `*' points you at footnote info. Table 3: HARDWARE VENDORs SUPPORTED A C M O S S V p A o G L M A O p O c t i W w p s V m D a G i e I M b e p r a s i x W p i C m C l u b n N E V n e M r S W W n W z Z a e e L o L e i J w u W W i I n P a V U o N d i X A i r c w I n A x l A x e i E e n U S c i I r D / n V p n e t s M V P y d M m t n L w t I M h e T k X U d T p c Systems ------------------------------------------------------------------------------- p c - . . . - . . . . - c - . - . - - c . . . - . c y DOS Graphics - c p . . . - . . . . - c - . - . c - . . c . - . c c DOS Text . . . . . . . . . . . . . . . - . c . . . . . . . y c 16-bit DOS Extender . . . . . . . . . . c . c . . - . c . . . . . . . - c 32-bit DOS Extender - c - . . . - . . . . - c - . y . c - . . . . p y . c ASCII Text c c y . c c y c . e c e e c c y c c c c c c e c c c y MS-Windows 3.x Win16 . . . . . . . . . . . . . . . . . . . . . . . . . . c MS-Windows Win32s c c b . b c c c . . . - - c c y b - c c c c . - c b b Macintosh . . . . . . . . . . . - . . . p . - b . . . . . . . p Macintosh PowerPC p . c . c . c c . . c - c - c y c - c . c b . - c c c OS/2 p . p . . . y c . . . c p c c b . p c . . . . b c c c 80x86 / Windows NT Win32 p . p . . . b . . . . c p . c - . p c . . . . - c . p DEC AXP / Windows NT p . - . . . b . . . . c p . . - . p p . . . . - c . . MIPS / Windows NT - c - . b . y . . . . - - . c - . - c c c c . c c . - SunOS / OpenLook c c c . . c y b . c . c - . . c . c c c . . y c c y c SunOS / Motif . . b . . . . . . . . c . . . . . . . . . . . . . . . Sun Solaris 2.x / Motif p c - . . . . . . . . p - . . c . c - . . . . c y . . ISC / Motif . . . . . . . . . . . . - . . . . . . . . . c . c . . DEC AXP OSF1 / Motif . . . . . . . . . . . . - . . . . . . . . . . . c . . DEC AXP OpenVMS / Motif c . - . . . y . . . . p - . c c . c p . c . . c c . . DEC Ultrix / Motif p c p . . . y . . . . p - . c c . c p . . . p . c . p DEC Vax VMS . . . . . . . . . . . . - . . . . . . . . . . . c . . AT&T System 3000/ Motif p c c . . . . . . . . p - . c c c c p . . . . c c y c SCO Unix/Xenix / Motif p c - . . . c . . c . p - . c - . - p . . . p c c . . MIPS / Motif . . . . . . . . . . . . - . . . . . . . . . c . c . . HP 700/800 HPUX / Motif c c c . . . y . . c . c - . c c . c p c c . . c c y c HP 9000/HPUX / Motif p c p . . . y . . c . c - . c c . c c c c . y c c y c IBM RS-6000/AIX / Motif p c - . . . c . . c . c - . c - . c p c . . y y c c c Silicon Graphics - . - . . . . . . . . - - . . - c - - . . . . . . . . Pyramid Table 4: SUPPORT FEATURES With 800 FTP Read Support Vendor sale number? BBS? Compuserv? server? USENET? Other contracts ------- ----------------------------------------------------------------------- AppWare yes soon no yes yes yes (b) TBD Aspect ? ? . . . . . $200-$800/yr Views 60d no yes no no yes . $250-$500/yr CLIM (c) (c) (c) (c) (c) (c) (c) (c) CommonV (a) ? . . . . . - DCLAP none no no no yes yes . - Galaxy none yes no no yes yes (k) $1,995/yr Guild 90d ? . . . . . $100/month JAM . ? . . . . . . libWxm . ? . . . . . . MAINWin 1 year yes . . yes . (h) $1000/yr(e) Menuet . ? . . . . . . MEWEL yes no yes yes yes yes . $250/yr ObViews . ? . . . . . yes OI . ? yes . . yes . $1200-$2400/yr Opus . ? . . . . . - OpenUI 90d no soon no soon yes (h) 12%-30%/yr PSM . ? . . . . . - ScrMach 1 year yes no no no yes (hk) 20%/yr StarVie . yes yes yes no yes . - SUIT . no . . yes . (d) - VisWork (f) yes yes yes (g) . . $675/yr Wind/U . no no no yes yes (mn) 12%-20%/yr wxWind . no no no . yes . - XVT 1 year yes yes yes yes . . (call) zApp forever no yes yes no yes . - Zinc forever no yes yes yes yes . $499/yr(j) ------- ----------------------------------------------------------------------- Vendor With 800 BBS? Compuserv? FTP Read Other Support sale number? server? USENET? contracts (a) CommonView provides free maintenance for MS-Windows and OS/2. 15% of cost is required for Motif, however. (b) There's a mailing list (appware-info-request@serius.uchicago.edu for more info). (c) CLIM is a multi-vendor product. See the individual vendor for information. (d) There is a SUIT mailing list. Send email to 'suit-users-request@uvacs.cs.Virginia.EDU' for mor information. (e) That's for one person. The second person is $700, and subsequent users are at $500. (f) Installation and temporary evaluation help plus one free general support question. (g) Gopher service. (h) Support (including distribution) by e-mail. (j) This is for their higher-end support. Simple support still comes for free. (k) They support an email mailing list. (m) WWW support. (n) Newsletter. Archive-name: portable-GUI-software/part2 Last-modified: Wed Mar 2 13:52:30 PST 1994 Version: 1.8 ----------------------------------- Copyright 1993, Wade Guthrie. Permission is granted to copy and redistribute this document so long as it is unmodified (including the part that explains where to get the FAQ free-of-charge) and the copyright remains in-tact. I'd appreciate it if you told me about any redistribution, but that's not strictly necessary. ----------------------------------- 0. CONTENTS -- part 1 -- I. WHAT'S NEW IN THIS ISSUE II. INTRODUCTION III. ABOUT THE IEEE PIGUI STANDARD IV. USER-INTERFACE APPROACHES V. FEATURES AND SUPPORTED PLATFORMS -- part 2 -- VI. VENDOR REPORTS VII. ACKNOWLEDGEMENTS VI. VENDOR REPORTS Vendor reports start here. Each one is led by a form feed. NAME: AppWare Foundation VENDOR: Novell 1601 Saratoga-Sunnyvale Rd Cupertino, CA 95014 (800) 554-4446 (inquiries) (408) 973-0989 (voice) info@sti.com SOFTWARE CONFIGURATION: AppWare is a product line which includes 'Visual AppBuilder', 'AppWare Loadable Modules(ALM) SDK', and 'AppWare Foundation'. The product in this FAQ is AppWare Foundation (if you contact Novell, please indicate the full name). The AppWare Foundation software consists of dynamic and static 'C' language libraries. Novell has reconfigured AppMaker and AppStudio to act as GUI builders for AppWare Foundation. They provide international support through Unicode (an international character set), native localization, and international versions of the standard I/O library and memory allocation. Full key-code information is available to the application as well. Novell is particularly proud of their extensive graphics library (which includes support for rotated fonts, scaling, colormaps, printing, coordinate-transform matrices, and off-screen drawing in addition to multiple screen and multiple display drawing). In addition to GUI portability, network support is provided for a variety of protocols; and, they have given the user the ability to access shared libraries (and the functions within them) explicitly by name (note that you only need the path to the library -- it doesn't have to be linked with the executable). COMMENTS: This software started-out life as STI's Universal Component System. FUTURE PLANS: C++ and Cobol support are currently being implemented. NAME: Aspect, V1.2 VENDOR: OPEN Inc. 655 Southpointe Court, Suite 200 Colorado Springs, CO 80906 (719) 527-9700 (sales, customer service, tech support) (719) 576-3835 (fax) SOFTWARE CONFIGURATION: This is a C library, though they're type safe for C++ compatibility. A GUI builder is provided with the library. Note that this product does not generate code, it's just a resource editor (that is being rectified in the next release, however). COMMENTS: Aspect is missing a help system and error handling support. FUTURE PLANS: They're coming out with a code generator (hurray!), icon and image support, and a C++ class library soon. NAME: C++/Views, V3.0.1 VENDOR: Liant Software Corp. 959 Concord St., Framingham, MA 01701 USA (800) 237-1873 (sales) (800) 833-3678 (inquiries) (508) 875-2246 (support) support@lpi.liant.com SOFTWARE CONFIGURATION: This is a C++ library based on the smalltalk model (all classes come from one superclass, and they have a smalltalk-like class browser). Version 3 now has a WYSIWYG GUI builder (that includes a class browser and portable resource editor) called C++/Views Constructor. Additional features include printer, graphics, event, string, and various container classes as well as some higher-level classes (e.g., VTableView and VToolBar). Version 3 also handles geometry management so you can place objects based on relative coordinates and persistent object storage. C++/Views Constructor is the focal point of the C++/Views development process. One uses the browser to navigate through his application to, among other things, find appropriate GUI base classes. From there, one can derive new class descriptions which the browser uses to generate the necessary C++ source code. The user doesn't see individual events; they handled by virtual callback functions in the base classes. SUPPORT: 60 days free. After that, $250/year for Microsoft Windows and OS/2; $500/yr with free upgrades. $500/yr for Motif; $1000/year with free upgrades. COMMENTS: Liant seems to be listening to what their customers have to say. Many of the previous negative comments in this FAQ have been addressed by Liant in their latest release (and this has been substantiated by user comments). The people at Liant have also been extremely helpful with putting together this FAQ. FUTURE PLANS: Liant has a Mac version, but the price is as yet undetermined. They have DOS and Unix character versions which, I'm told, will be in beta very soon. They're also working on portable, on-line help, multi-byte character support, C++ code generation from their builder (as opposed to generation of a resource file), and compatibility with ODBMSs. WHAT THE USERS SAY: They use a smalltalk model -- if you like smalltalk, great; if not, you may have some trouble. They have a browser/editor -- it's simple to add a new message but it's reportedly kind-of clumsy to use. You may want to use a different environment like Borland's IDE under Microsoft Windows. US technical support has improved (and is continuing to improve), from what I've heard, but overseas users must go through their local technical support personnel (some of which are less than stellar). NAME: Common Lisp Interface Manager, V2.0 VENDOR: Well, this gets kind-of complicated. It was started by a company called 'Internation Lisp Associates', or ILA, but was adopted by several Lisp vendors. The five active CLIM parters are: Symbolics (these guys are the primary coordinators of the project) Concord, MA Lucid, Menlo Park, CA sales@lucid.com Franz, Berkeley, CA Harlelquin Illudium york@lucid.com SOFTWARE CONFIGURATION: CLIM is a de-facto extension to the Common Lisp language. It supports standard shape-drawing primitives with a portable color model. Full 2D affine transforms are supported. In addition, a platform-independent font specification mechanism is included. CLIM operates through a back-end for each underlying GUI. Back-end efforts exist for Motif (which is shipping), OpenLook, and the Macintosh. I don't think that there is a Windows back-end yet. CLIM can also run in a CLIM-look-and-feel mode as a fallback. For additional information, see the comp.lang.lisp FAQ, part 7. NAME: CommonView Glockenspiel VENDOR: Computer Associates International One CA Plaza Islandia, NY 11788-7000 (516) DIAL CAI (voice) (516) DIAL FAX (you guessed it, fax) SOFTWARE CONFIGURATION: This is a C++ library. In addition, it comes with container classes. The down-side is that some of the features are not supported across all platforms. WHAT THE USERS SAY: One user says, "[we] Tried this first on MS_Windows, and were reasonably impressed, but the X-Windows version was so buggy and ill-conceived, it didn't last more than two weeks here. They may have fixed it all by now [...]. Support was very poor. Great concepts, but very poor implementation." REVIEWER'S IMPRESSIONS: Computer Associates seems to have a strong big-company attitude. I've had to weave through a lot of twisty little passages (turning at every "that's not my job and I don't know whose it is") to try to find someone who was willing to help put together this FAQ (I haven't yet). I hope that their support is better when they already have your money in their pocket. NAME: Don's Class Application (DCLAP) library. VENDOR: Don Gilbert, Indiana University at Bloomington, Biocomputing Dept. dclap@bio.indiana.edu SOFTWARE CONFIGURATION: This is a (free-of-charge) barebones C++ application framework with no detailed documentation. COMMENTS: You can get it via anonymous ftp from ftp.bio.indiana.edu. It's in the /util/dclap directory. According to the author, it "has several important flaws". But, on the other hand, it's free for non-commercial uses. It is built on the cross-platform toolkit from the National Center for Biotechnology Information (NCBI) of the National Library of Medicine (NLM) available for anonymous ftp from ncbi.nlm.nih.gov as /toolbox/ncbi_tools/ncbi.tar.Z. NAME: Galaxy, V1.2 VENDOR: Visix 11440 Commerce Park Drive Reston, Virginia 22091 (800) 832-8668 (inquiries) (703) 758-2711 (voice) galaxy@visix.com SOFTWARE CONFIGURATION: There are C++ and C versions of this library. The package includes a WYSIWYG GUI builder. The tools are, reportedly, pretty full-featured. User-interface items have extensive abstraction (for example, they have a confirmation-type dialog that resolves to a push-pin and 'apply' button under OpenLook, but 'ok', 'apply', 'cancel' buttons under motif). Objects can be positioned relative to each other (rather than merely by absolute position on the screen). Also, errors are handled with an abstract exception handling framework. They support internationalization of fonts (at least Japanese), money, and data formatting. Some extra-cool features include memory leak detection and C-language objects for text (multi-styled, multi-font text with embedded graphics), list (spreadsheet-like for handling up to 2^31 x 2^31 cells with customizable displays), and graphics processing. In addition to a GUI portability platform, Galaxy also includes inter-process communication (IPC), extensive filesystem, and sound support portability across platforms. SUPPORT: You get no support when you buy the product. If you buy the support, it includes product updates and phone access to their developers. According to one of Galaxy's developers "not buying support is really a false economy". COMMENTS: These guys have implemented a full superset approach to their API. Often, their objects are more capable than the native-mode object would if you had not used their code. Like Neuron data, they're an emulated API (they don't layer on-top of other tools); they compile, for example, down to Xlib under Motif or OpenLook. And like XVT, Visix is a major contributor to the IEEE P1201.1 standard. This software won Unix Review's Outstanding Product Award (1993) for Software Development Front-Ends. WHAT THE USERS SAY: One user says, "If you are looking at cross-platform development environments, you absolutely MUST take a look at Galaxy, from Visix Software. Very good interface builder, covers ALL layers of the API, from GUI to networking, very well designed API, C++ version, etc. [...] We have had good results with it so far." Another user agrees, "I've been using their software for almost 2 years now and I love it", adding, "I lead a project that had > 80K lines of C / C++ that had less than 100 lines [different] between the SunOS and MS-Windows versions." But others chide them for their 1 week class requirement for an evaluation copy, "I looked at Galaxy. It seems to be a nice package, but [...] If you want to give it a try, you MUST take their 1 week class for about $1800.00 and what manager is going to allocate funds", "... and time [...] This required one week trip to Visix class was probably the reason we ended up with another package." Word has it that Visix is dropping this policy. REVIEWER'S IMPRESSIONS: These guys have been extremely helpful getting their portion of this FAQ going. I think that this could be indicative of seriously superlative support (that's an awful lot of alliteration). NAME: Guild VENDOR: Guild 1710 S. Amphlett 2nd Fl. San Mateo, California 94402 (415) 513-6650 (voice) (415) 349-4908 (fax) SOFTWARE CONFIGURATION: This is a C-language library, but they're type-safe for C++ compatibility. The package includes a GUI builder and an event occurrence monitor. Additional features in the library includes support for international character sets, portable file system support and nifty C-language classes for pie-charts, 3d bars, x-y plots, and the like. OPTIONS: Graphic Modeling $995 Oracle Database Bridge $395 ODBC Database Access $495 SUPPORT: Three month free phone tech support. After that, its $100 per month or $1000 per year (the latter including free upgrades). FUTURE PLANS: They're working on a Unix/Motif version. WHAT THE USERS SAY: Problems include "no file, printing or memory management support", according to Richard Chimera (carm@cs.umd.edu). NAME: JAM/Pi 5.03 (6.0, reportedly, is on the way) VENDOR: JYACC, Inc. New York, New York (212) 267-7722 (voice) SOFTWARE CONFIGURATION: This is a C-language library. The package includes a GUI builder. OPTIONS: JAM/DBi Database Interface JAM/Rw Report Writer FUTURE PLANS: Version 6.0 is due out soon. This is supposed to be quiet a bit better in the GUI arena than they've done in the past. WHAT THE USERS SAY: One user says "We have been using JAM 5.03 [...] and am not entirely happy with it. [...] no scrollbars in the CUI version, no buttons [...] The CUI does not follow any accepted style (like Motif or MS Windows)" NAME: libWxm VENDOR: Visual Solutions 487 Groton Road Westford, MA 01886 (508) 392-0100 (voice) (508) 692-3102 (fax) sales@vissol.com SOFTWARE CONFIGURATION: libWxm emulates the MS Windows (win32/s) API. They support dialogs, resources, bitmaps, child windows and controls, custom controls, fonts, and GDI commands. FUTURE PLANS: MDI support, postscript printing, and DDE support. NAME: MAINWin/CDK v1.0 VENDOR: MAINSoft Corporation 883 North Shoreline Blvd., Suite C-100 Mountain View, CA 94043 (800) MAIN-WIN (inquiries) (415) 966-0600 (voice) (415) 896-0708 (fax) info@mainsoft.com SOFTWARE CONFIGURATION: MAINWin is a portable implementation (to any system offering POSIX compliance and Xlib) of the MS Windows API (including the Microsoft Foundation Classes) on Unix/X-Windows. The CDK includes printer support, a resource compiler, a help compiler, a makefile generator plus some additional tools. The software's output runs directly on Xlib, and does not require Motif software. MAINWin allows the user to switch look-and-feel (between MS-Windows and Motif) from the system menu at run-time. In order to run a MAINWin application on a Unix workstation, users need a copy of the "MAINWin for Workstations" product for each machine on which the code runs. MAINWin offers porting tools for MS Windows resources, the MS Windows hypertext help system (which uses the original rtf-format help files), shared libraries (DLLs), fonts, postscript printing, dynamic data exchange (DDE), and MS Windows Device Context APIs. Also included in this code is support for the Microsoft MFC 2.0 class library. Finally, MAINWin includes their DDR technology to provide PC-compatible file structures across all systems. Documentation for with MAINWin includes the "MAINWin Cross- Development Guide", the "MAINWin API Function Call Status" document and the "MAINWin API Message and Control Status" document. MAINWin's optional developer program includes a weekly status of issues reported to MAINSoft. FUTURE PLANS: MAINSoft plans to support OLE/OLE2, DDEML, and the Win32 API. They also plan to provide the MAINWin/Device Driver Kit. They also support a user environment for $199. COMMENTS: MAINSoft has entered into a source code license agreement with Microsoft. This agreement allows MAINSoft to incorporate MS-Windows code into their product. In addition, MAINWin includes something they call DOS Data Representation technology into their toolkit. This allows the user to use MS-DOS format files under the other platforms supported by their software. NAME: Menuet/CPP VENDOR: Autumn Hill Software, Inc. 1145 Ithaca Drive Boulder, Co. 80303 (303) 494-8865 (voice) (303) 494-7802 (fax) SOFTWARE CONFIGURATION: Menuet/CPP is a C++ product (they also have a vanilla 'C' product). They have a product called an Application Generator -- anyone know what this is? NAME: MEWEL User Interface Library, Version 4.0 VENDOR: Magma Systems 15 Bodwell Terrace Millburn, NJ 07041 (201) 912-0192 (voice) (201) 912-0103 (fax) (201) 912-0668 (BBS, 9600-1200, N-8-1) 75300.2062@compuserve.com (Magma has a vendor support conference on CIS) magma@bix.com (Magma has a vendor support conference on BIX) SOFTWARE CONFIGURATION: MEWEL is a portable implementation of the MS Windows API. It is a C library, but is type-safe for C++. You can program your applications in C, or can use Microsoft's MFC, Borland's OWL, Liant's C++/Views, and wxWindows. In addition, a "lite" version of MEWEL is distributed with the DOS text and DOS graphics versions of zApp. Their product has also been ported to Gnu C++ (DJGPP) on the PC. FUTURE PLANS: "We are working on a version for MFC/NT [Microsoft Foundation Classes/Windows NT] using Pharlap TNT extender, but it's not ready yet." One nifty ramification of this is that one will be able to use MEWEL and the Pharlap DOS extender in order to port Windows NT applications to DOS. NAME: Open Interface Elements, Version 3.0 VENDOR: Neuron Data 156 University Avenue, Palo Alto, California 94301 (800) 876-4900 (inquiries) (415) 321-4488 (voice) SOFTWARE CONFIGURATION: Open Interface is an emulated PIGUI with a C++ API (as of Open Interface Elements 3.0). The software also comes with a WYSIWYG GUI builder which includes a script language that can co-exist with C or C++. They include tons of extra widgets (which they call "Power Widgets") like business graphics (bar, pie, and line charts), images (all standard formats), a hypertext widget, and context-sensitive hypertext help. Other software in Open Interface includes international character support, portable drag-and-drop, multi-font support, full printer support, memory management, file I/O support as well as MS-Windows DDE support (the latter is, of course, non-portable). OPTIONS: "Nexpertobject" is an expert systems tool intended for GUI development. "C/S Elements" is a client/server for tying UI components to one of many supported relational databases. This allows the UI to control the database and changes in the database to be propagated back into the UI. "Smart Elements" is an integration of Nexpert Object and Open Interface for integrating knowledge-based systems with GUIs. This allows changes to objects in the database to be propagated to the UI and vice versa. In addition, these are integrated with a scripting language which causes changes in both the database and the UI. COMMENTS: Open Interface is an emulated GUI, that attempts to superset the features from the various GUIs they support. Particularly if one looks at Neuron Data's optional products, one can see a leaning toward support of DBMS and expert systems. These guys claim to have 35% of the market share for PIGUI tools (including some heavyweights like IBM, Microsoft, Hewlett-Packard, and AT&T). WHAT THE USERS SAY: One user says, "[They've] Implemented all kinds of ideas such as being able to add items to scrolling lists using the += operator in C++ etc etc etc. Found some bugs, but support was brilliant, and new releases were always pushing the frontiers forward. All bug reports have met with speedy response. It is expensive, but worth it. Great for object-oriented development." Another user agrees, "The only one [PIGUI] I would recommend is Neuron Data's Open Interface.". However, one user cautions, "I [only] recommend doing development on a UNIX box or a Mac with this tool. The person using our [MS] windows copy has had some problems with ND corrupting its own data files and/or crashing windows." NAME: ObjectViews C++ VENDOR: Quest Windows Corporation 4677 Old Ironsides Drive Santa Clara, CA 95054 (408) 496-1900 (voice) (408) 988-8357 (fax) SOFTWARE CONFIGURATION: This is a full C++ class library. It is a superset of a non- proprietary API based on "InterViews". It includes Motif 1.2 Drag and Drop and Tear-off Menus. It allows full access to native Xlib, PEX, SDK, and Mac toolkit. SUPPORT: One hour free. After that, it costs (I'm not sure how much). NAME: OpenUI, 2.13 VENDOR: Open Software Associates 20 Trafalgar Square, Suite 414 Nashua, NH 03063 (603) 886-4330 (voice) (603) 598-6877 (fax) graemeg@nh.opensoft.com SOFTWARE CONFIGURATION: This interface supports C, Pascal, (ish) COBOL, and Ada. Not only is the C type safe for C++, but they're willing to supply a native C++ API if there's enough demand. The software comes with a WYSIWYG GUI builder. They also have a "platform pack", a less-expensive, de-featured package which allows software developed with OpenUI to be ported to other platforms. Their code supports stand-alone as well as client (GUI) / server (Logic) application development. A client/server application can be developed in stand-alone mode. When you purchase the product, you receive 90 days of fax and e-mail support. Purchased support adds-in phone access as well as product updates. In addition to GUI portability, OpenUI provides TCP/IP and DecNet support. WHAT THE USERS SAY: Says one user, "Support is brilliant, among the best I have ever seen in the computer industry. Comes with a [GUI] builder, allows generation of new GUI classes using a concept of soft-classes (not quite inheritance, but fairly powerful). Good for when multi- platform support is needed, but not as powerful as OI for a single GUI application. They will port to other hardware fairly quickly. We got the SUN port within a month." Problems include "no file, printing or memory management support", according to Richard Chimera (carm@cs.umd.edu -- from a report "Evaluation of Platform Independent Interface Builders", dated March 1993). NAME: Presentation Services Manager VENDOR: Lancorp Pty Ltd 33 Nott St Port Melbourne 3207 Australia +61 3 646 7100 (voice) +61 3 646 8610 (fax) SOFTWARE CONFIGURATION: No WYSIWYG GUI builder exists, but they do include a script language. NAME: Screen Machine, V1.41 VENDOR: Objective Interface Systems, Inc. 1895 Preston White Drive, Suite 250 Reston, Virginia 22091-5448 (800) 800-OIS7 (inquiries) (703) 264-1900 (voice) (703) 264-1721 (fax) info@ois.com SOFTWARE CONFIGURATION: This is an Ada PIGUI which includes a WYSIWYG GUI builder. The product fully supports Ada's built in multi-threading capabilities (protects against non-re-entrant code in the native windowing systems). This allows SQL applications and such to continue processing input from the user while waiting on one or more database transactions. Screen Machine (I have to give them two points for the name alone) includes an Ada code generator that generates layered Ada GUI code that follows the presentation/dialog/application scheme. SUPPORT: Free (with updates) for one year. After that, call for pricing. FUTURE PLANS: OIS is currently developing an Ada94 (fully O-O) parallel implementation of Fresco/C++ (new Xt replacement technology in X11R6). This new Fresco_Ada(tm) will offer the same object embedding (via CORBA), multi-threading support, resolution independence, multiple look-and-feel emulation, and structured graphics that the C++ version of Fresco. The CORBA interface will allow Fresco_Ada applications to transparently interoperate with Fresco/C++ applications. OIS is extending the product to include a full MVC paradymn and fully automatic memory reclaimation. Windows NT and Windows 4.0 versions are planned in addition to the VMS and Unix X Windows versions. NAME: StarView 2.1 VENDOR: Star Division 2180 Sand Hill Road, Suite 320 Menlo Park, CA 94025 (800) 888-8527 (inquiries) (415) 233-0142 (fax) svinfo@stardiv.de SOFTWARE CONFIGURATION: This is a full C++ class library that comes with their DesignEditor which creates resource files. Some of the classes include SplitBar (a splittable scrollbar like a spreadsheet uses), tool boxes, status bars, file dialogs, and MS-Windows bitmap support via file stream IO. Other features/portability capabilities include international language support (being a German company selling software in the states, this makes a lot of sense), full printer support (including page preview), and drag&drop support. They claim to provide cross-platform OLE 1.0 support (not sure how they do this). This product also comes with several general-purpose C++ classes including Strings and a very complete complement of container classes (e.g., Queues, Lists, and Tables). These classes are included in a Microsoft Windows DLL for reduced memory usage. COMMENTS: These guys are using their own code to put together a multi- platform word processor. Their word processor guys keep their PIGUI guys informed of any incompatibilities. One really neat thing is that they've ported Microsoft's help to other platforms. They have special (though non-portable) Microsoft Windows OLE and DDE classes. FUTURE PLANS: OS/2 & NT in beta. They are working on OLE 2.0 classes as well. WHAT THE USERS SAY: Lots of users really like StarView. Ian Upright (Ian_Upright@mindlink.bc.ca), for example, says "If you're doing [PIGUI] development, I think you'd be insane to not check out StarView as an option. [...] The entire design of the library is very intelligent and VERY well thought out. [...] It also has system dependent hooks available. Such as the ability to trap [MS] windows messages of a HWND." Other users second this, "Their features for creating graphics and using output devices is marvelous." and "The class library is excellent. It's complete. [...] It's intuitive." Many have complained about their technical support, "They've got one good tech support guy, Andreas [and he IS really helpful]. You may not be able to call and get an immediate answer, as they're not always in." Says another user, "The real disappointment with StarView has been their customer support. We've known times where they didn't return our calls for weeks. They've consistently been late with releases and shipments, and have made promises on the phone that were not kept." REVIEWER'S IMPRESSIONS: The software is new, and it seemed to me to be a bit rough around the edges. I had a review copy, but never got the software to work with Microsoft Windows 3.0 (this is when MS-Windows 3.1 was the most recent version). The support people tried extremely hard to help me, but I had to move on to other things without being able to get it to work. NAME: Simple User Interface Toolkit, v2.3 VENDOR: University of Virginia suit@uvacs.cs.virginia.edu SOFTWARE CONFIGURATION: SUIT is a (free-of-charge with strings attached) C-language library. It comes with source, a 10 page tutorial, and a 160 page reference manual. SUIT's prime directive is ease of learning (estimated time to productivity is around 2 hours -- oh, and there is that thing about not interfering with the natural advancement of an indigenous life form, but we won't get into that here :-> ). The software has the unusual trait that it's user-interface is editable even while a SUIT application program is running. SUIT is available with source for free for Universities and non-profit organizations (for-profit organizations can license SUIT for around $25,000). Anyone can download it via anonymous ftp from uvacs.cs.virginia.edu (128.143.8.100) for evaluation purposes. For more information finger 'suit@uvacs.cs.virginia.edu' NAME: VisualWorks / ObjectWorks VENDOR: ParcPlace (800) 759 PARC (voice) SOFTWARE CONFIGURATION: VisualWorks is a SmallTalk application development environment and class library for client-server GUI products. The VisualWorks software includes a set of interactive development tools to help you, well, develop your GUI software interactively. In addition, one can use the Chameleon View product to preview the look of an application as if it were running under different windowing managers on the various supported platforms. In order to use VisualWorks, you must have the ParcPlace SmallTalk language product. In addition to all of this, VisualWorks includes an external database interface. OPTIONS: CPOK (C Programming ObjectKit) allows linking with C programs for $495. COMMENTS: Apparently (I haven't seen the article, personally) the June 14,1993 issue of Computerworld ranks ParcPlace pretty highly. NAME: Wind/U v2.0 VENDOR: Bristol Technology Inc. 241 Ethan Allen Highway Ridgefield, CT 06877 (203) 438-6969 (voice) (203) 438-5013 (fax) info@bristol.com SOFTWARE CONFIGURATION: Wind/U is an implementation of the Microsoft Windows API under X-Windows. Wind/U supports Win32 (whether this is Win32 only or in addition to Win16, I don't know -- Net.People: any help on this?) and the Microsoft Foundation Classes (MFC, the API under Visual C++). It contains custom widgets to allow applications to utilize multiple document interface (MDI), combo boxes, dynamically linked libraries (DLLs), dynamic data exchange (DDE), PostScript and PCL4 and PCL5 (Hewlett Packard's Printer Control Language) printing, and MS Windows-style help. In addition, they support the Windows GDI graphics drawing interface, including the coordinate system choices. Finally, they support Common dialog DLLs as well as DDEML (Dynamic Data Exchange Management Library) DLLs. Their toolkit includes Wind/U Spy, an application that runs under Motif but looks like the MS-Windows Spy program. FUTURE PLANS: Support for Win32 is in beta and will be available in the summer of 1994 (any news on this?). HyperHelp V4.0 is also due out this summer and should include improved FrameMaker support, printing, and a bunch of other stuff. WHAT THE USERS SAY: One user says, "[Wind/U] is a fairly complete implementation of the Windows API for unix. There are some bugs, and some unimplemented features, but it seems to be getting better over time. Bristol's support for their product is truly excellent: they are very responsive and have been able to provide rapid turnaround for our problems." NAME: Opus, V2.04 VENDOR: WNDX 1550 8th Street S.W. Suite 305 Calgary, Alberta Canada T2R 1K1 (403) 244-0995 (voice) SOFTWARE CONFIGURATION: Does anyone know anything about this product? This software provides support for printing (some platforms only), help, icons, toolbars, and custom controls. It seems that they give the programmer the ability to manipulate either platform-independent GUI objects or other-platform-specific objects (for example, Motif style scrollbars under MS-Windows). COMMENTS: According to one article, they've altered concepts that most GUI developers consider conventional. All widgets have all the attributes defined for them (it's just that some of the attributes are meaningless and, therefore, ignored). There are some problems, like colors are not fully editable and there's no way to put a picture on a button (without fudging). Other complaints include features (like icons) that require special non-portable effort to use in a native look-and-feel. NAME: wxWindows, V1.5 VENDOR: Artificial Intelligence Applications Institute University of Edinburgh 80 South Bridge Edinburgh Scotland EH1 1HN 031 650 2746 (voice) J.Smart@ed.ac.uk SOFTWARE CONFIGURATION: This is a (free-of-charge) C++ library with source. They have a program to translate the output of DevGuide (Sun's XView GUI builder) into wxWindows format and another one to allow one to use Liant's class browser with the library. This package includes hypertext help, printer support (this is better than some packages you have to pay for), and some nifty graphics capabilities including splines, polylines, and rounded rectangles. It includes the standard menu bars, toolbars, pens, brushes, etc. In addition to all of that, it includes IPC features that includes MS-Windows DDE support. A CURSES version is in alpha. In addition, wxWindows includes timers, filesystem portability features, as well as PROLOGIO which allows the user to create (apparently, with some limitations) object-oriented, Prolog- compatible data files. COMMENTS: To get this software, anonymous ftp it from skye.aiai.ed.ac.uk (192.41.104.6); it's in pub/wxwin or pub/wxwin/beta. The files are wxwin150.tar.Z (for X-Windows demo software) or wxwin150.zip (for the PC). Their GUI builder conversion program is in beta, and one can get it by anonymous ftp from cs.tut.fi (130.230.4.2); it's in the file '/pub/src/gwx10.tar.Z'. This is free software, so one should expect that it has a couple of warts relative to the packages for which one would pay. It (according to the author) doesn't stick too closely to the style guides of the individual platforms, but "most people won't know the difference [... the software has] a long way to go before I've used all the features [of the various GUIs]". Still, the price is right. . . FUTURE PLANS: Widget management (similar to Motif), automated GUI testing facilities, their own GUI builder, and a MS-Windows .rc-to-wxWindows converter, NAME: XVT Portability Toolkit, Release 3.02 VENDOR: XVT Software Incorporated 4900 Pearl East Circle Box 18750 Boulder, CO 80308 (800) 678-7988 (inquiries) (303) 443-4223 (voice) (303) 443-0969 (fax) info@xvt.com SOFTWARE CONFIGURATION: XVT comes as either a C-language or C++ library. They have a WYSIWYG GUI builder but it is unbundled from the basic C package (they don't yet provide it for their C++ product). They provide printing support, drag-and-drop, platform-independent help, and powerful platform-independent font handling capability. Now, XVT has some bitmap support. OPTIONS: XVT-Design (a WYSIWYG GUI builder) $2900 ($1200 for PCs) Source Code (call) XVT-PowerObjects (includes spreadsheet, toolbar, status bar, tables, that sort of stuff) $495 ($395 for PCs) SUPPORT: Free (with updates) for six months. After that, call for pricing. COMMENTS: XVT is the original PIGUI software. They are, in fact, being used as the base document for the IEEE P1201.1 Layered Application Program Interface for GUIs. They seem to provide pretty solid support for all the platforms (and, there's a lot) that they support. XVT has chosen as a strategy unbundling everything that isn't absolutely essential. Though this differs from the vast majority of the rest of the PIGUI world, XVT seems to feel that this allows users with a wider variety of budgetary constraints access to their products. FUTURE PLANS: They are expecting a new version of Design++'s layout tool sometime soon. WHAT THE USERS SAY: The user's have said that the manuals are good and extremely well organized and that the Designer's test mode actually tests the logic (a really helpful feature). Their tech support is also reportedly pretty good ("wonderous", says one user). The user community has mixed feelings on XVT's choice to go with a least-common-denominator approach to portability (though I'm told that XVT is getting away from this). Some feel that the LCD approach is the only way to get true portability. On the other hand, one user said "...we were to use this for one of our products, (a 4GL screen painter), because it promised cross-platform GUI support [...] we were disappointed with the low-level common denominator chosen [...and chose another platform]". Many feel that XVT seems to be based on older technology. For example, messing with color palettes doesn't seem to work too well and they're limited to 16-colors. One user indicated that XVT provides for poor font portability. On the other hand, someone on the net indicated "...at the end of 2 weeks we had a fully- functional [medium-sized] application on Mac and MOTIF", he goes on to say that the the user-interface was redesigned half way through. Power++ is said to be a fantastic improvement over their old C++ product (Design++), but I've not heard any specifics yet. Christopher Bailey says that XVT is one of the best PIGUIs that he's seen. In addition, he says "their Partner program provides a lot of additional functionality (database interfaces, custom widgets, advanced graphics, additional platforms [...], and more)", but on the other hand "their Design tool is the worst I've seen of any toolkit around. It puts out buggy code, [...] doesn't give you many options, [...and] it's not that intuitive". NAME: zApp, V2.0 VENDOR: Inmark 2065 Landings Drive, Mountainview, CA 94043 (800) 3-inmark (inquiries) (415) 691-9000 (voice) (415) 691-9099 (fax) sales@inmark.com SOFTWARE CONFIGURATION: This is a full C++ class library. This product contains 200 classes to provide things like DDE support (non-portable), printer support, logical positioning (top, bottom, etc) of window items, and true-type font support. Included in their package is 75 pre-defined forms (as well as the usual examples). The software comes with zApp Programmer's Guide (330 pages) and zApp Programmer's Reference (890 pages). OPTIONS: Their GUI builder, called Object/Designer, is offered as an aftermarket product for $499. SUPPORT: Free forever. FUTURE PLANS: Mac & Motif support. DDE support under Unix/Motif. WHAT THE USERS SAY: The customer-interface is great. zApp receives many plaudits as one of the "big three" for inexpensive PIGUIs. Most really like their class structure. One user says "zApp contains without a doubt the absolute best C++ code I have ever seen. It is an amazingly simple, intuitive interpretation of GUI and OOP interfaces". Another user says, "zApp is an EXCELLENT platform-independent API. If you truly must write your code "once" for multiple platforms, zApp is the C++ solution to get." One user complained about lack of DLL support and no portable help files. The major complaint seems to be that zApp is quite apparently MS-Windows-oriented. Many of their classes and idioms don't translate well (or at all) to other platforms. NAME: Zinc, V3.6 VENDOR: ZINC Software Incorporated 405 South 100 East 2nd Floor Pleasant Grove, UT 84062 (800) 638 8665 (inquires) (801) 785-8900 (voice) (801) 785-8996 (fax) (801) 785-8997 (bbs) tech@zinc.com SOFTWARE CONFIGURATION: This is a full C++ class library that comes with the Zinc Designer (a WYSIWYG GUI builder). Their classes include some graphic capabilities, a rather nice error system, and a portable, if rudimentary, help system. Also included is the source for the library (and for the Designer!). In addition to the usual GUI stuff, Zinc also provides international character support (they have a Unicode version for extra bux) and some container classes. They also allow you to incorporate platform-specific stuff (e.g., system messages) into their API; but, of course, you're on your own when it comes to porting any additions. The software comes with 4 manuals. They have the Programmers Reference Guide (766 pp), Programming Techniques (414 pp), the Programmer's Guide (154 pp), and the Internationalization Guide (158 pages). OPTIONS: They'll provide Unicode at extra cost (price, unspecified). Additionally, they provide a video training series (this gives lots of Zinc internals detail, but not a lot of relief for the novice programmer) for $499. COMMENTS: Zinc's direction seems to be the international market along with support for the marketeers-do-the-GUI-while-programmers-do-the-code crowd. That said, they promise that they'll not forget about the applications and scientific programmers as they grow. To use their product to its fullest, you have to use their GUI builder (the only way you can get icons on all platforms, for example, is through the Designer). Unfortunately, the Designer has a few drawbacks; one of these is that it creates a separate data file that has to be present (as well as the executable) in the execution path for software that uses Designer-created graphics to work. FUTURE PLANS: Macintosh (which is now in pre-release) support, the utilization of the native help system, and improved graphics support. They also plan to add several new classes including ones for printing, window geometry, index tabs, status bars, sliders, and spinners. Zinc has big plans for their Designer (their GUI builder) targeted, it seems, to provide a comfortable GUI design environment for non-programmers. Their plans include easing the addition of user-defined widgets to the designer, parallelizing the main-design-screen/image-editor/help-editor, and replacing flag names with more user-friendly english descriptions. Word has it that they're completely rewriting their manuals (and the crowd goes wild...) to reduce the learning curve associated with this product. WHAT THE USERS SAY: Many complain of the lack of intuitive feel of the API. Ian Upright (Ian_Upright@mindlink.bc.ca) says, "The overall class library was not as simple and straight forward as I would have liked it to be [...] When I was playing around with it, I had to be fairly careful with my coding, or I could easily get a GP fault." Other users agree that the learning curve is steep. Another user is bothered by lack of user support, "On three separate occasions I tried for two days straight (sometimes calling in one-minute intervals) to contact their support line only to find it busy every time." Users praise the look and feel under DOS. REVIEWER'S IMPRESSIONS: This software seems to be full featured, but lacks in the documentation department. The manuals give gory detail of the implementation of the product (which, I'm sure, is great when one gets to be a guru with the product and wants to extend its capabilities), but little information on how to get started quickly. What their documents do say about using Zinc is mostly focused on the use of Zinc Designer, their WYSIWYG GUI builder; if you don't want to use that, you have to figure it out for yourself. On a more positive note, once you get used to the paradigm, it *is* pretty straight-forward to program. In addition, the software is becoming more robust with each release. VII. ACKNOWLEDGEMENTS Thanks to the many netters that have helped give information and general impressions of the software packages listed here. Also thanks to the vendors for keeping this FAQ accurate and up-to-date. In specific, I'd like to thank Eric Raymond (esr@snark.thyrus.com), 'cause I stole his UNIX FAQ format for use here. Thanks, Eric. I looked at some articles about GUIs for information. Those include: Steve Apiki, "Paths to Platform Independence", Byte, January 1994, pp. 172-178 Richard Chimera, carm@cs.umd.edu, "Evaluation of Platform Independent Interface Builders", Human-Computer Interaction Laboratory, University of Maryland, dated March 1993. Carl Dichter, "One For All. . .", UNIX Review, October 1993, pp. 65-74 Thomas Murhpy, "Looking at the world through cheap sunglasses", Computer Language, February 1993, pp. 63-85 UNIX Review Staff, "Outstanding Products of 1993", UNIX Review, December 1993, pp. 47-54 -- Wade Guthrie | "Here's to way *WAY* too many MIPS, vintage wade@nb.rockwell.com | sports cars, AD&D (first edition), and I don't speak for Rockwell. | single malt whiskey aged in sherry casks."