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
faqs.org - 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
URL: http://www.zeta.org.au/~rosko/pigui.htm

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

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:
rosko@zeta.org.au





Last Update March 27 2014 @ 02:12 PM