Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

Portable GUI Development Kits FAQ, part 1/4

( Part1 - Part2 - Part3 - Part4 )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Forum ]
Archive-name: portable-GUI-software/part1
Posting-Frequency: monthly
Last-modified: 1997/03/02
Version: 3.1

See reader questions & answers on this topic! - Help others by sharing your knowledge
    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.

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

   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
   This document is maintained and periodically updated as a service to
   the net by Ross McKay ( 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:
   You can also get the plaintext version from the following HTML page:, by anonymous FTP from
   `', or by following newsgroups comp.answers or
  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:
          Part 2 was getting too big and needed splitting;
          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
     * 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
   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,
   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.

   Here are some words that you'll find in this FAQ along with working
   definitions for them.
          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.
          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
          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.
          Common Open Software Environment. COSE is the industry-agreed-
          upon graphical environment that will augment (significantly)
          and replace Motif and OpenLook.
          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.
          Dynamic Data Exchange. This is a method of inter-process
          communication under Microsoft Windows.
          Microsoft Windows' Dynamic Data Exchange Management Library.
          Dynamically Linked Libraries. These are, essentially, shared
          libraries under Microsoft Windows or OS/2.
          Frequently Asked Questions. A list. . .like THIS one!
          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).
          Microsoft Windows' Graphical Drawing Interface.
          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.
          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.
          Inter-process Communication. It's a generic term for the way
          separate processes (or tasks) under an operating system talk to
          each other.
          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.
          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
          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.).
          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.
          Platform-Independent Graphical User Interface. Actually, it
          refers to a platform-independent API (q.v.).
          OS/2's Presentation Manager. This is the GUI under OS/2.
          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.
          Software Development Kit. It's software to help a programmer
          build other software.
          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.
          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
          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.
          Your Mileage May Vary.

   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.

   [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
   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
     * 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.
          Allegris Workshop, Intersolv (was C++/Views by Liant)
          Common Lisp Interface Manager, several vendors
          Don's Class Application library, Don Gilbert
          EiffelVision, ISE
          Galaxy, Visix
          GraphApp, by Lachlan Patrick
          ILOG VIEWS, ILOG
          JAM, JYACC.
          Java AWT, Sun Microsystems Inc.
          libWxm, Visual Solutions
          MAINWin/Cross-Development Kit, MAINSoft Corporation
          MetaCard, MetaCard Corporation
          Menuet/CPP, Autumn Hill Software, Inc.
          MEWEL UIL, Magma Systems
          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).
          NuTCRACKER, DataFocus, Inc.
          Oberon/F, Oberon Microsystems
          Open Interface, Neuron Data
          OpenUI, Open Software Associates
          Qt, Troll Tech
          Screen Machine, Objective Interface Systems, Inc.
          StarView, StarDivision
          Simple User Interface Toolkit, University of Virginia
   VisualAge for C++ and Smalltalk, IBM
          VisualWorks, Openware
          Wind/U, Bristol Technology
          WM_MOTIF User Interface Library, Software UNO, Ltd.
          WNDX GUI Toolkit, WNDX
          wxWindows, Artificial Intelligence Applications Institute
          XVT Portability Toolkit, XVT Software Inc.
          Yet Another Class Library, M. A. Sridhar.
          zApp, RogueWave (Inmark have merged with RogueWave)
          Zinc, Zinc
   In addition, I'd like to mention the following products that are not
   mentioned in this document (well, not except for here):
          This product has been _de-emphasized_ (which is commonly
          believed to mean `dropped') by Novell.
          Looks like `Open' has gone out of business.
          Word has it that Computer Associates has stopped supporting
          Glockenspiel CommonView.
          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
          This product is no longer supported, but it's free from

          I'm told this is no longer supported, but contact
 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

                                         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

          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.
          For non-x86 platforms, check for availability -- Alpha and MIPS
          Support for this product has been discontinued.
          per platform, e.g. once for each of SGI, HPUX, etc.
          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.
          Win16, Win32s, and Win32 are packaged together.
          for a PC-based Unix, we're talking $5850.
          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.
          You can purchase the entire bundle of libraries with zApp
          Factory for one platform for $8995.
          This product is free for non-commercial use. If you make a
          profit, you'll have to check with the vendor for pricing and
          A single license (any platform) can be used for all supported
          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
          The cost drops for subsequent copies. Number 2 is $3500 and
          number 3 is $2000.
          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."
          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.
          Per programmer per platform per annum. Check other options
          That's Microsoft Windows (TM).
          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.
          Price does not include source code (the other MEWEL products
          Price includes all platforms supported, in one package.
          Does work on PenOS systems, but does not _yet_ have Pen
          That's OpenLook.
          That's NextStep.
          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.

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)

          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).
          Open Software Associates is willing to make a deal for source
          on a case-by-case basis.
          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).
          Give them a P.O. They'll give it back if you don't like the
          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.
          You can buy it, or you can get an escrow account.
          This is a WYSIWYG GUI Builder.
          Pascal, Cobol, and Ada are supported, too, but there wasn't
          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.
          There is a cost for evaluation.
          They've taken a `wrappers' approach -- you can't subclass from
          their C++ classes.
          Source to the JDK and AWT is available, unknown (to me) what
          licence conditions apply. 3rd party GUI builders abound in beta
          Uses SunOS's DevGuide.
          Type means `emulated', `layered', or `API emulated'. This
          describes how the product approaches support for various GUIs.
          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.
          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.
          You can program in the MS Windows API or use MFC, OWL, or
          Any C/C++-based (depending on the nature of the product) MS
          Windows Application Builder will work.
          Different LISP vendors support CLIM -- each provides a
          different set of options and pricing structures.
          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.
          These guys have a `flexible evaluation structure'.
          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.
   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,

                              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

          indicates that support has been verified by a user report.
          indicates that the hardware/OS is claimed to work in vendor
          indicates that this is the API emulated by the software.
          indicates that the hardware/OS is in beta.
          indicates that the hardware/OS is planned, but not yet in beta.
          indicates that support for the hardware/OS is being PHASED OUT.
          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 Digital Unix
          DEC AXP OpenVMS
          AT&T System 3000
          SCO Unix/Xenix
          Silicon Graphics Irix
   Footnotes, denoted by `*'
          There is ASCII support for Tcl/Tk, but it is limited. However,
          it is claimed that `most scripts will run' on it.

        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

          $395 for Windows 3.1, $495 for Win32 (95 and NT) and OS/2,
          $1295 for Unix, or a complete package (all platforms) for
          There's a mailing list.
          CLIM is a multi-vendor product. See the individual vendor for
          There is a SUIT mailing list. Send email to
          suit-users-request@uvacs.cs.Virginia.EDU for more information.
          That's for one person. The second person is $700, and
          subsequent users are at $500.
          Installation and temporary evaluation help plus one free
          general support question.
          Gopher service.
          Support (including distribution) by e-mail.
          Phone support available on a `per incident' basis
          This is for their higher-end support. Simple support still
          comes for free, but telephone and fax support stops after 60
          They support an email mailing list.
          Cost of technical support per year == purchase price of
          There are commercial releases, which offer support. Check out
          the Commerical Uses of Tcl/Tk FAQ - Part 2.
          WWW support.
          Intersolv has `QuickStart' license plus service packages for
          extra bux, which can accelerate your startup.
    Ross McKay
    $RCSfile: pigui1.txt,v $; $Revision: 3.1 $; $Date: 1997/03/02
    08:37:38 $

User Contributions:

Comment about this article, ask questions, or add new information about this topic:

Part1 - Part2 - Part3 - Part4

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:

Last Update March 27 2014 @ 02:12 PM