[Comp.Sci.Dept, Utrecht] Note from archiver<at>cs.uu.nl: This page is part of a big collection of Usenet postings, archived here for your convenience. For matters concerning the content of this page, please contact its author(s); use the source, if all else fails. For matters concerning the archive as a whole, please refer to the archive description or contact the archiver.

Subject: Portable GUI Development Kits FAQ, part 1/4

This article was archived around: 2 Mar 1997 20:54:57 +1100

All FAQs in Directory: portable-GUI-software
All FAQs posted in: comp.windows.misc
Source: Usenet Version

Archive-name: portable-GUI-software/part1 Posting-Frequency: monthly Last-modified: 1997/03/02 Version: 3.1 URL: http://www.zeta.org.au/~rosko/pigui.htm
PLATFORM INDEPENDENT FAQ PART ONE _________________________________________________________________ Copyright 1996 Ross McKay. Last released $Date: 1997/03/02 09:04:40 $ Copyright 1993-1995 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. _________________________________________________________________ I. WHAT'S NEW IN THIS ISSUE. . . Seems that many of the vendors with commercial products are looking hard at Java... just a few that I know of include Willows, Visix, Neuron Data, Bristol, and RogueWave. Of course, there are many other big names there already, including Sun, Symantec, Borland, Oracle, and yes, even Microsoft. I will try to get together a rundown on what each offers for next month. In the meantime, you may want to check out some of the sites. It seems that many people are looking to Java as the language that will allow cross-platform portability at last. Watch those prices! Many will still be out of date! _Check with the vendor!_ Notable in this version (3.1) * added first entry for GraphApp * removed ObjectViews as manufacturer Quest Windows is defunct * updated ILOG Views with new database access, ActiveX and plugins * updated MainWin with new pricing, support OLE 2.0 and threads * updated Galaxy as eval no longer requires training * updated NuTCRACKER to 3.0 * updated prices on Qt * updated XVT to 4.5 * updated home page of wxWindows, and there _is_ a Mac port * updated home page of Amulet * notice: watch out for StarView falling from the sky soon... 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 Ross McKay (rosko@zeta.org.au). 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. As the primary format of this document is now HTML, the best place to get it is on the Word Wide Web at the following place: http://www.zeta.org.au/~rosko/pigui.htm You can also get the plaintext version from the following HTML page: http://www.zeta.org.au/~rosko/textfaq.htm, by anonymous FTP from `rtfm.mit.edu', or by following newsgroups comp.answers or news.answers. IIb. What's a PIGUI? A PIGUI (_Platform Independent Graphical User Interface_) 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 several 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. Native look-and-feel is a desirable feature, but is not essential for PIGUIs. 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). Another approach that Petula could choose, is to design her system partitioned into GUI and non-GUI objects, and implement the GUI objects in the native API. Then, when porting, only the GUI objects need to be rewritten for the new platform. There are some developers who recommend this course of action, as it produces a better fit on each platform and eliminates the overheads often associated with PIGUI toolkits. Obviously, this would mean more effort on Petula's part, in both the initial development and in ongoing maintenance (no single base of source code). It also means learning how to code for _every_ target platform. Not (usually) a trivial task, hence the market for PIGUI kits. (NB: partitioning your design into GUI and non-GUI objects is a _good thing_ to do anyway) IIc. A word (or two...) about language choice. There are PIGUI kits for languages including C, C++, Smalltalk, Java, Ada, Tcl, and Python. Most (all?) new PIGUI kits will be developed in Object-Oriented programming languages, as GUI work is ideally suited by the advantages of OO (especially inheritance / reuse). The bulk of exising kits are in C++, due to the popularity of that language, with many still in C but supporting C++. I have partitioned the Vendor Reports into separate parts because of this, putting C and C++ kits into Parts 2 and 3, and others in Part 4. My justifications are that: a) Part 2 was getting too big and needed splitting; b) due to practical or religious concerns, some people don't want to _know_ about the C/C++ kits 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 one's code to take advantage of) classes, inheritance, and constructors in order to complete the port. Of course, if one wants one's 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. Other Issues to Consider. The difference in GUI programming is most likely the greatest hurdle when programming for cross-platform portability, but it is not the only hurdle. Other issues often not delt with by cross-platform GUI kits, and not addressed by this FAQ, include (but may not be limited to): * byte alignment (little-endian vs big-endian) of data types in files and over network connections * (more generally) data formats, eg. non IEEE floating point * memory management (eg. 64k segment limitations) * text file end-of-line (CR-LF, LF, CR, RS, ...) * directory / folder navigation and file management services * multi-threading support * inter-process communications * system level functions (OS specific) * Unicode (16-bit international character set) When developing an application that may be ported to more than one platform (even if those platforms are the 16 and 32-bit versions of Microsoft Windows), you should be aware of the differences between the target platforms before development commences. IIf. More Legal Barf. At this point, I find it necessary 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. Despite the best efforts of the maintainer of this FAQ, some information contained herein may not be accurate. Please verify any information (especially prices) with the respective vendors before finalising any desision. Please also forward any corrections or comments to the FAQ maintainer, rosko@zeta.org.au Some information contained in this FAQ is based on the opinions of users of the respective products, and does not necessarily reflect the views of the maintainer of this FAQ. III. 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. _APIW_ Applications Programming Interface for Windows, a standard for cross-platform development. APIW was adopted by the European Computer Manufacturers Association (ECMA) on 15 December 1995, and is currently awaiting approval from the International Standards Organisation (ISO). APIW is based on the Microsoft Windows API. Microsoft are not happy; expect to see more legal action. _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. The look-and- feel is Motif-like, but there's a lot more than that to CDE. 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. COSE is the industry-agreed- upon graphical environment that will augment (significantly) and replace Motif and OpenLook. _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 or OS/2. _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. _HTML_ HyperText Markup Language, an implementation of a Standard Generalised Markup Language (SGML). HTML is what Word Wide Web (WWW) pages are written in; click on `View Source' in your Web browser to see some. _IMO, IMHO_ In My (Humble) Opinion. Usually means very opinionated and not very humble. _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. Several versions exist, including PCL4 and PCL5. _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. This is yet another technology created by Xerox Parc. _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 Latin alphabet (as used for English and other languages), 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. 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 the product provides portability) portable to other GUIs. V. FEATURES AND SUPPORTED PLATFORMS [Platform vs Price] [Features, Other Nifties, and Hidden Costs] [Hardware Vendors Supported] [Support Features] 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: * support for the platforms you need, * the choice of implementation language, * availability and price of source code, * printer support, * support for international character sets, * capability to support draw-package-like features, * bitmap (and icon) support, * the approach to platform independence (see below), * nifty high-level widgets, and * price (complete price including royalties and distribution charges), 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 parentheses 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 (in fact, at least one vendor has abandoned an existing OpenLook product). The following products are listed in this FAQ. Abbreviations are given for product names which are too long to go into the tables. _Alleg_ Allegris Workshop, Intersolv (was C++/Views by Liant) _CLIM_ Common Lisp Interface Manager, several vendors _DCLAP_ Don's Class Application library, Don Gilbert _Eiffel_ EiffelVision, ISE _Galaxy_ Galaxy, Visix _Graph_ GraphApp, by Lachlan Patrick _ILOG_ ILOG VIEWS, ILOG _JAM_ JAM, JYACC. _Java_ Java AWT, Sun Microsystems Inc. _libWxm_ libWxm, Visual Solutions _MAINWin_ MAINWin/Cross-Development Kit, MAINSoft Corporation _MetaCrd_ MetaCard, MetaCard Corporation _Menuet_ Menuet/CPP, Autumn Hill Software, Inc. _MEWEL_ MEWEL UIL, Magma Systems _MS-MFC_ Microsoft Foundation Classes as provided by _Microsoft_ Visual C++ and related products. This does NOT include non-Microsoft vendors who also support MFC (they are listed separately). _NuTCRAC_ NuTCRACKER, DataFocus, Inc. _OberonF_ Oberon/F, Oberon Microsystems _OI_ Open Interface, Neuron Data _OpenUI_ OpenUI, Open Software Associates _Qt_ Qt, Troll Tech _ScrMach_ Screen Machine, Objective Interface Systems, Inc. _StarVie_ StarView, StarDivision _SUIT_ Simple User Interface Toolkit, University of Virginia _VisAge_ VisualAge for C++ and Smalltalk, IBM _VisWork_ VisualWorks, Openware _Wind/U_ Wind/U, Bristol Technology _WMMOTIF_ WM_MOTIF User Interface Library, Software UNO, Ltd. _WNDX_ WNDX GUI Toolkit, WNDX _wxWind_ wxWindows, Artificial Intelligence Applications Institute _XVT_ XVT Portability Toolkit, XVT Software Inc. _YACL_ Yet Another Class Library, M. A. Sridhar. _zApp_ zApp, RogueWave (Inmark have merged with RogueWave) _Zinc_ Zinc, Zinc In addition, I'd like to mention the following products that are not mentioned in this document (well, not except for here): _Appware_ This product has been _de-emphasized_ (which is commonly believed to mean `dropped') by Novell. _Aspect_ Looks like `Open' has gone out of business. _CommonV_ Word has it that Computer Associates has stopped supporting Glockenspiel CommonView. _GUILD_ this seems to be part of the software configuration management tool, Continuus, rather than a toolkit in its own right _Object Windows Library_ Borland seem to think `cross platform' means all varieties of Microsoft Windows. _Presentation Services Manager_ after months of fruitless searching, I don't believe this is around anymore _STDWIN_ This product is no longer supported, but it's free from ftp://ftp.cwi.nl/pub/stdwin/. _Vibrant_ I'm told this is no longer supported, but contact info@ncbi.nlm.nih.gov for more information. _Table 1: PLATFORM VS. PRICE (US$ except where noted) _ _Please_ check with vendor, as many of these prices may be out of date! X/ Open- Next- Vendor ASCII DOS Win(s) Win/NT OS/2 Motif Look Mac PenOS Step ------- ----------------------------------------------------------------------- Alleg - - 995(f) 995(f) 995 995 - - - - Amulet - - - free - free - free - - CLIM . . . . . yes yes soon . . DCLAP . . (k) . . (k) . (k) . . Eiffel - - . . - . . soon - . Galaxy - - 9600m 9600m 9600m 9600m 9600m 9600m - . Garnet - - - - - free - free - . Graph - - free free - free - soon - - ILOG - - 6500 10000 10000 10000 - - - - JAM yes yes yes . . yes yes . . . Java - - - yes yes yes . yes - . libWxm - - (h) (h) - yes - - - . MAINWin - - (h) (h) - 8000n - - - . Menuet - 499 599 - 599 999 - . yes . MetaCrd - - 995(l) 995(l) - 995(l)- soon - - MEWEL 1595 395u (h) (h) 795 yes - - - . MS-MFC - - yes 399 - - - 1999 - - NuTCRAC - - - 2995 - (h) - - - - OberonF - - 400v 400v - - - 400v - - OI yes yes 5800 6850 6850 9850 9850 4800 . . OpenUI yes - 3500 soon 4900 7900g - 3500 (w) . Qt(q) - - - 1470 - 1470d - - - - ScrMach 495 495 1995 soon - (p) - - - - StarVie - - 499 995 495 1499 1499 499 - - SUIT . (k) (k) . . (k) (k) (k) . . Tcl/Tk free soon free free soon free free free - . TWIN - - (h) (h) soon (t) . (t) - - V - - free free soon free - - - - VisAge - - . . . . . - - - VisWork . . 2995 . 2995 4995 4995 2995 . . Wind/U - - (h) (h) - 9950 - - - . WMMOTIF 1500 - (h) (h) - 1995 - - - . WNDX . 1000 1000r 1000r 1000r 1000r - 1000r - - wxWind soon - free free soon free free free - . XVT - - 1950 6300ab 1950 6300a (c) 1950 . . YACL - - free free free free - - - - zApp(i) - - 1495 1995 1995 4995d - soon - . Zinc(e) 1499e 499e 499(f) 499(f) 499e 1499 - 499ej 499 . ------- ----------------------------------------------------------------------- Vendor ASCII DOS Win(s) Win/NT OS/2 X/ Open- Mac PenOS Next- Motif 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) Support for this product has been discontinued. (d) per platform, e.g. once for each of SGI, HPUX, etc. (e) Zinc requires a single-time purchase of the Zinc GUI Engine at $499, plus the cost for each individual GUI (e.g. HP-UX Motif = $499 + $1499). They also offer several packages, called `bundles', which reduce the total price when you buy several platforms. These are PC (Engine + DOS, Win16/32, OS/2, Mac) $1999; Motif (Engine + all Motif platforms) $4999; Everywhere (Engine + all platforms) $5999. Unicode is $4999. (f) Win16, Win32s, and Win32 are packaged together. (g) for a PC-based Unix, we're talking $5850. (h) This product uses the API that's native on this platform (e.g., support for Win32 under MS-Windows NT); so, in that sense, it supports this platform. (i) You can purchase the entire bundle of libraries with zApp Factory for one platform for $8995. (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. (l) A single license (any platform) can be used for all supported platforms. (m) Each version of Galaxy is able to use the Motif, OpenLook, OS/2 CUA, or Windows look-and-feels. On the Macintosh version the Mac look-and-feel is available along with the others listed above. Also: This is the C price. You're looking at $12.2K for C++. (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." (q) Qt is actually sold in terms of Norwegian Krona, so US prices may vary. A `Duo pack' for Win32 and UNIX/Motix for one developer is NOK13950, or about US$2200. (r) Per programmer per platform per annum. Check other options online. (s) That's Microsoft Windows (TM). (t) Annual subscription; Willows has three levels of subscription: Basic for $250 p.a., Standard for $1000 p.a., and Premium for $5000 p.a. Non-commercial users can download TWIN for free, or buy a CD-ROM for $80. (u) Price does not include source code (the other MEWEL products do). (v) Price includes all platforms supported, in one package. (w) Does work on PenOS systems, but does not _yet_ have Pen extensions. (x) That's OpenLook. (y) That's NextStep. (z) DOS Text is sold separately from DOS graphics. 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, OTHER NIFTIES, AND HIDDEN COSTS _ Vendor Type(p) LAF(i) Eval(a) Source Royalty Distrib(z) Language Builder(g) ------- ----------------------------------------------------------------------- Alleg layered native (j) free no . C++ yes Amulet layered native - free free free C++ soon CLIM . native (u) . . . Cmn Lisp (u) DCLAP . native free free . . C/C++ . Eiffel emulate native . . . . Eiffel yes Galaxy emulate native (d) (e) no . C/C++ yes Garnet emulate custom free . . . Cmn Lisp yes Graph emulate native free free . . C no ILOG emulate native 30 no no - C++ yes JAM layered native . yes no . C yes Java layered native free (l) . . Java (l) libWxm API emu native 60 4995 . . . . MAINWin API emu native 30 no (w) (w) C/C++ yes Menuet . native . . . . . . MetaCrd emulate native free no no free MetaTalk yes MEWEL API emu native . (r) no no C(s) (t) MS-MFC . native . . . . C++ yes NuTCRAC API emu native . yes . yes C/C++ . OberonF emulate native free free no no Oberon yes OI emulate native (x) . no $8,000 C/C++(k) yes OpenUI layered native (q) (e,b) no . C(h) yes Qt emulate native . . no no C++ . ScrMach layered native 30 (e) no . Ada free StarVie layered native 30 6000 no free C++ yes SUIT . native free free . . C . Tcl/Tk . custom free free no . Tcl(c) yes TWIN API emu native free free no no C/C++ . V emulate native free free no no C++ . VisAge layered native . . . . C++,Smal yes VisWork emulate native 30(j) 100000 yes . SmalTalk yes Wind/U API emu native 30(j) (f) no $19,500/yr C/C++ (t) WMMOTIF API emu native (j) 7500 no no C/C++ (t) WNDX layered native 30 (f) no . C yes wxWind . native free free no . C++ (n) XVT layered native (j) yes no . C/C++ yes YACL . native free free no no C++ . zApp layered native 60(j) free no . C++ $499 Zinc layered native 60(j) free no no C++ yes ------- ----------------------------------------------------------------------- Vendor Type(p) LAF(i) Eval(a) Source Royalty Distrib(z) 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 (minus, possibly, a cost for the evaluation -- check with the vendor). (b) Open Software Associates is willing to make a deal for source on a case-by-case basis. (c) The Tk part of Tcl/Tk can be used from C/C++ and Java also. There is a shell for Ada, called TASH. There is a version of Tk for Perl and Scheme (Unix et al). (d) Give them a P.O. They'll give it back if you don't like the product. (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. (i) Look And Feel - as claimed by the vendor. Native means on OS/2 it looks like a Presentation Manager app, on Macintosh it _doesn't_ look like a MS-Windows app, etc. Custom means it has made up a new one of its own. (j) There is a cost for evaluation. (k) They've taken a `wrappers' approach -- you can't subclass from their C++ classes. (l) Source to the JDK and AWT is available, unknown (to me) what licence conditions apply. 3rd party GUI builders abound in beta release. (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, OS/2, and Unix versions come with source for free. The DOS version is an additional $400 with source. The Motif version can also be purchased. (s) You can program in the MS Windows API or use MFC, OWL, or C++/Views. (t) Any C/C++-based (depending on the nature of the product) MS Windows Application Builder will work. (u) Different LISP vendors support CLIM -- each provides a different set of options and pricing structures. (w) MAINWin kind-of charges royalties and/or distribution... there are two schemes, `per product' and `machine general'. When there is more than one product installed on a machine, `machine general' is best, otherwise probably `per product' would suit. (x) These guys have a `flexible evaluation structure'. (z) This represents a cost per platform or application (check with the vendor) distributed. It's not technically a royalty since the cost is not per unit of software shipped, but it is a cost that one has to consider. These costs are usually limited to commercial applications. _Table 3: HARDWARE VENDORs SUPPORTED _ This 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). Win32 Sun A U D O S A Win Mac +++++ +++++ X l L +++++++ S +++ +++ O M O S P O t A M H P i N G T 1 3 C 3 3 6 P S x A I p n S I / V r V T S I P A S m n Q E f x 6 2 I . 2 8 P / 8 X P e O o S U M i M & C P U I G i u N X x t x x I 1 s k C 2 6 P S n S l C x S x S T O S X X I d x X T ========================================================================= Alleg - - - - - y c - - c c . - - c c - c . - . . . - c c c - . . . Amulet - - - - - - - c c - c . . - c c . c . . . . c c c c c . c . . CLIM . . . . . p . p . . p . . c c c . . c . . . c c c c c . . . . DCLAP . . . . . c . c c . c . . . c c . c . . . . . . . . . . c . . Eiffel - - - - - y . p p - c . . c c c . . c c c . c c c c c c c . c Galaxy - - . . - - y y c y y c b y y c . c c y y . . c y y c . i . . Garnet - - - - - - - c c - - - - . c c . c . . . . . . c c c . . . . Graph - - - - - c c p p - c . . - c c . c . . . . c c c c c . c . . ILOG - - - - - c c - - c c b - c c c - c - - - - - - c c c - . . . JAM - - - - c c c c c - c c c c c c . c c . c c c c c c c c . . . Java - - - - - p p . y c y . . . c y . . . . . . . . y c c . y . . LibWxm . . . . . e . . . . . . . . c . . . . . . . . c c c c . . . . Menuet . . . c . c . . . c . . . . . . . . . . . . . . . . . . . . . MAINWin - - - - - e . - - - c c c c c c p c - - - - c - c c y - - - - MetaCrd - - - - - - - p p - c - - - c c - c - c - c c - c c c - c - - MEWEL c c . c c e . - . c p p p - c c - - - - - - c - c c - - . . . MS-MFC - - - - - y y y b . y y y - - - - - - - - - - - - - - - - - - NuTCRAC - - - - . - - - - - y c c - - - e e e e e e e e e e e e e . . OberonF - - - - - . c c . - c - - - - - - - - - - - - - - - - - - - - OpenInt . . . . . c . c c c c c . c c c . c c c c . c c c c c . i . . OpenUI - - - - y y . y p y c . . - c . c c c c c . c - c c - c . . . Qt - - - - - - - - - p y . . - c c . y - - - . c . c c c . y . . ScrMach - c c c c c . - - - p p p - c . c . . c c . c - c c c - . . . StarVie - - - - y y y y y y y c c c c c - . . p p . p p p c p - p . . SUIT c . . . . c . c c . . . . c c c . c . . . . . . c c c . . . . Tcl/Tk p - - - * - c c c p y y y c c c . c c y y . c c c c c . c c c TWIN - - - - - e e c c p e e e . c c . c - - - c c c c c c . c c . V - - - - - y . - - p c . . - c c . y . . . . c c y c c . y c . VisAge - - - - - . . . . c c c . . . . . . . . . . . . . c . . . . . VisWork . . . . . c . c c c c c . c . . . c . c . . . . c c . . . . . WNDX c - c c . c c c c c c . . . c c . . . . . . . . c . c . c . . WMMOTIF - - - - c e - - - - e - - - c c c c - - - c c - c c - - c . . Wind/U . . . . . e e . . . e e e . y c . c c . c . . p c y y . . . . wxWind - - . . p c . c c p b - - c c . c . . c . . c c c c y . c . . XVT - - - - y c c c c c c c - x c c x c c x c c c c c c c - p . . YACL - - - - - y c - - c c c c - c c . c . c . . c . c c c . c . . zApp - - - - . c c - - c c c . - y c . - - - - . y . y y c . . . . Zinc y y y y c y y y y y y c . - c c . c c . p c c c c c c c i c c ========================================================================= D O S A Win Mac O Win32 Sun I A O U V A S M H A S P L Q N +++++++ S +++ +++ S +++++ +++++ S X V l M T C I P I G m i N E G T 1 3 C 3 3 6 P / x A M O S S C P M t S & O P U X I i n X X f x 6 2 I . 2 8 P 2 8 X I p n o / S r T S X d u T x t x x I 1 s k C 6 P P e O l U i x S n S x x y indicates that support has been verified by a user report. c indicates that the hardware/OS is claimed to work in vendor literature. e indicates that this is the API emulated by the software. b indicates that the hardware/OS is in beta. p indicates that the hardware/OS is planned, but not yet in beta. x indicates that support for the hardware/OS is being PHASED OUT. i indicates that I've heard that the vendor has ported their libraries, but they are only available in-house. . indicates that whether this combination works is unknown. - indicates that the vendor doesn't support that hardware. * points you at footnote info. Sun - Open: SunOS OpenLook Sun - SnOs: SunOS Motif Sun - Sol: Sun Solaris Motif AXP/Ux: AXP Digital Unix OVMS: DEC AXP OpenVMS AT&T: AT&T System 3000 SCO: SCO Unix/Xenix SGI: Silicon Graphics Irix Pmid: Pyramid Footnotes, denoted by `*' Tcl/Tk There is ASCII support for Tcl/Tk, but it is limited. However, it is claimed that `most scripts will run' on it. _Table 4: SUPPORT FEATURES _ With 800 FTP Read Support Vendor sale number? BBS? Compuserv? server? USENET? Other contracts ------- ----------------------------------------------------------------------- Alleg . yes no no yes yes (w) 17%/yr (v) Amulet . no . . yes . (wb) - CLIM (c) (c) (c) (c) (c) (c) (c) (c) DCLAP none no no no yes yes . - Eiffel . no no no yes . (w) yes Galaxy none yes no no yes yes (wk) $1,995/yr Garnet none no no no yes yes (wb) no Graph none no no no yes no (w) . ILOG 30d yes no yes yes yes (wn) 15%/yr JAM . ? . . . . (w) . Java . . . . yes yes (w) . libWxm . ? . . . . . . MAINWin 90d yes . . yes . (wh) $2000/yr(e) Menuet . ? . . . . . . MetaCrd forever no no no yes yes (bhw) (i) MEWEL yes no yes yes yes yes (w) $250/yr MS-MFC . no . . . no (w) . NuTCRAC 1 year yes no no no yes (w) $500-$750/yr OberonF . no no no yes yes . yes OI . ? yes . . yes (w) $1200-$2400/yr OpenUI 90d yes soon no yes yes (wh) 12%-30%/yr Qt 1 year no no no yes . (w) 30%/yr ScrMach 1 year yes no no no yes (hk) 20%/yr StarVie . yes yes yes no yes (w) - SUIT . no . . yes . (wd) - Tcl/Tk (t) no no no yes yes (w) . TWIN . no no no yes . (w) (p) V no no no no yes no (w) . VisAge . yes . . . . (w) . VisWork (f) yes yes yes (g) . . $675/yr Wind/U . no no no yes yes (wn) 12%-20%/yr WMMOTIF 30d yes yes yes yes yes (w) 20/yr WNDX 30d no yes . soon no (hnw) (p) wxWind . no no no . yes (w) - XVT 6 mon. no yes yes yes (r) (wb) (call) YACL - no no no . yes . - zApp forever yes yes yes yes yes (w) $395-$1995(a) Zinc forever no yes yes yes yes (w) $499/yr(j) ------- ----------------------------------------------------------------------- Vendor With 800 BBS? Compuserv? FTP Read Other Support sale number? server? USENET? contracts (a) $395 for Windows 3.1, $495 for Win32 (95 and NT) and OS/2, $1295 for Unix, or a complete package (all platforms) for $1995. (b) There's a mailing list. (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 more 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. (i) Phone support available on a `per incident' basis (j) This is for their higher-end support. Simple support still comes for free, but telephone and fax support stops after 60 days. (k) They support an email mailing list. (n) Newsletter. (p) Cost of technical support per year == purchase price of product. (r) Informally. (t) There are commercial releases, which offer support. Check out the Commerical Uses of Tcl/Tk FAQ - Part 2. http://www.cpu.com (w) WWW support. (v) Intersolv has `QuickStart' license plus service packages for extra bux, which can accelerate your startup. _________________________________________________________________ Ross McKay email:rosko@zeta.org.au $RCSfile: pigui1.txt,v $; $Revision: 3.1 $; $Date: 1997/03/02 08:37:38 $