home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.pasteur.org/FAQ/
/
ftp-pasteur-org-FAQ.zip
/
FAQ
/
portable-GUI-software
/
part1
< prev
next >
Wrap
Internet Message Format
|
1997-03-02
|
52KB
Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.starnet.net!news.starnet.net!news.dra.com!news-out.internetmci.com!newsfeed.internetmci.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!news.pbi.net!samba.rahul.net!rahul.net!a2i!news.vbc.net!vbcnet-west!news.mira.net.au!harbinger.cc.monash.edu.au!news.mel.connect.com.au!news.syd.connect.com.au!phaedrus.kralizec.net.au!not-for-mail
From: rosko@zeta.org.au (Ross McKay)
Newsgroups: comp.windows.misc,comp.answers,news.answers
Subject: Portable GUI Development Kits FAQ, part 1/4
Followup-To: comp.windows.misc
Date: 2 Mar 1997 20:54:57 +1100
Organization: Kralizec Dialup Unix Sydney, +61-2-837-1183 V.32bis
Lines: 1131
Approved: news-answers-request@MIT.EDU
Expires: Sun, 30 Mar 1997 00:00:00 GMT
Message-ID: <5fbiph$g3p@godzilla.zeta.org.au>
Reply-To: rosko@zeta.org.au
NNTP-Posting-Host: godzilla.zeta.org.au
Summary: This posting discusses many of the various platform-independent
Graphical User Interface (GUI) development software libraries/
packages.
Keywords: PIGUI
Xref: senator-bedfellow.mit.edu comp.windows.misc:33551 comp.answers:24595 news.answers:96028
Archive-name: portable-GUI-software/part1
Posting-Frequency: monthly
Last-modified: 1997/03/02
Version: 3.1
URL: http://www.zeta.org.au/~rosko/pigui.htm
PLATFORM INDEPENDENT FAQ PART ONE
_________________________________________________________________
Copyright 1996 Ross McKay. Last released $Date: 1997/03/02 09:04:40 $
Copyright 1993-1995 Wade Guthrie. Permission is granted to copy and
redistribute this document so long as it is unmodified (including the
part that explains where to get the FAQ free-of-charge) and the
copyright remains in-tact. I'd appreciate it if you told me about any
redistribution, but that's not strictly necessary.
_________________________________________________________________
I. WHAT'S NEW IN THIS ISSUE. . .
Seems that many of the vendors with commercial products are looking
hard at Java... just a few that I know of include Willows, Visix,
Neuron Data, Bristol, and RogueWave. Of course, there are many other
big names there already, including Sun, Symantec, Borland, Oracle, and
yes, even Microsoft.
I will try to get together a rundown on what each offers for next
month. In the meantime, you may want to check out some of the sites.
It seems that many people are looking to Java as the language that
will allow cross-platform portability at last.
Watch those prices! Many will still be out of date! _Check with the
vendor!_
Notable in this version (3.1)
* added first entry for GraphApp
* removed ObjectViews as manufacturer Quest Windows is defunct
* updated ILOG Views with new database access, ActiveX and plugins
* updated MainWin with new pricing, support OLE 2.0 and threads
* updated Galaxy as eval no longer requires training
* updated NuTCRACKER to 3.0
* updated prices on Qt
* updated XVT to 4.5
* updated home page of wxWindows, and there _is_ a Mac port
* updated home page of Amulet
* notice: watch out for StarView falling from the sky soon...
II. INTRODUCTION
This posting is intended to shell-out as much information as I can
find concerning platform-independent Graphical User Interface (PIGUI)
development kits (actually, it's platform-independent APIs targeting
various platform-DEPENDENT GUIs, but let's not get too picky). This
list is being posted because I've seen a whole mess of requests for
GUI portability information and, besides, I need this information as
well.
This document is maintained and periodically updated as a service to
the net by Ross McKay (rosko@zeta.org.au). Any corrections, updates,
or other pertinent information are welcomed at that address. If you
are a vendor of a PIGUI package (whether it's represented here or
not), I encourage you to amend, annotate, and append to this document
(and then, of course, send the revisions back to the author).
IIa. Where to get this document.
As the primary format of this document is now HTML, the best place to
get it is on the Word Wide Web at the following place:
http://www.zeta.org.au/~rosko/pigui.htm
You can also get the plaintext version from the following HTML page:
http://www.zeta.org.au/~rosko/textfaq.htm, by anonymous FTP from
`rtfm.mit.edu', or by following newsgroups comp.answers or
news.answers.
IIb. What's a PIGUI?
A PIGUI (_Platform Independent Graphical User Interface_) toolkit is a
software library that a programmer uses to produce GUI code for
multiple computer systems. The toolkit presents functions and/or
objects (along with a programming approach) which is independent of
which GUI the programmer is targeting. For the purposes of _this_
document, a PIGUI must support several GUIs under at least two
different operating systems (so just supporting OpenLook and Motif on
two Unix boxes doesn't count). The toolkit does not necessarily
provide any additional portability features. Native look-and-feel is a
desirable feature, but is not essential for PIGUIs.
Now, let's consider Petula Sniggly, a programmer who decides she wants
to build the ultimate computer program. This thing is going to be so
cool that everyone anywhere near a CPU will want to use it, so Petula
targets her program for every type of computer on the planet. She
considers getting herself a PIGUI toolkit to handle the GUI portion of
her code. With a PIGUI toolkit, when she wants to put a menu on the
screen, she calls the toolkit's `PIGUI_menu' function. When she
compiles her code with the `Macintosh' flag set, the PIGUI library
puts a Mac menu on the screen in response to the PIGUI_menu call. When
she compiles her code with the `Motif' flag set, the call causes the
library to put-up a Motif-style menu. All this happens (theoretically)
without Petula having to change her source code. If she is careful to
make her non-GUI code portable, she would have a single program (with
a single source) that works on multiple platforms.
There is no free lunch, so our heroine Petula has a few things to
consider before deciding whether to use a PIGUI. First, most (and
maybe `all' depending on whom you believe) of the PIGUIs will slow the
execution of your code. You are also limited to the feature set
provided by the PIGUI unless you want to code around the toolkit (but,
then again, why would you buy the PIGUI in the first place if you're
going to code around it?). Bugs in any toolset (PIGUI or otherwise)
filter down to your production code. Fewer people know how to code any
specific PIGUI than do a platform-specific GUI (e.g., MS-Windows), so
wizardly help will be limited. The PIGUI only deals with the GUI
aspects of your program -- you're on your own for other portability
issues. Finally, if the vendor goes out of business you may be
out-of-luck for support of future OS enhancements (source code can
ease, but not eliminate, the pain of a vendor closing its doors).
Another approach that Petula could choose, is to design her system
partitioned into GUI and non-GUI objects, and implement the GUI
objects in the native API. Then, when porting, only the GUI objects
need to be rewritten for the new platform. There are some developers
who recommend this course of action, as it produces a better fit on
each platform and eliminates the overheads often associated with PIGUI
toolkits. Obviously, this would mean more effort on Petula's part, in
both the initial development and in ongoing maintenance (no single
base of source code). It also means learning how to code for _every_
target platform. Not (usually) a trivial task, hence the market for
PIGUI kits.
(NB: partitioning your design into GUI and non-GUI objects is a _good
thing_ to do anyway)
IIc. A word (or two...) about language choice.
There are PIGUI kits for languages including C, C++, Smalltalk, Java,
Ada, Tcl, and Python. Most (all?) new PIGUI kits will be developed in
Object-Oriented programming languages, as GUI work is ideally suited
by the advantages of OO (especially inheritance / reuse). The bulk of
exising kits are in C++, due to the popularity of that language, with
many still in C but supporting C++. I have partitioned the Vendor
Reports into separate parts because of this, putting C and C++ kits
into Parts 2 and 3, and others in Part 4. My justifications are that:
a)
Part 2 was getting too big and needed splitting;
b)
due to practical or religious concerns, some people don't want
to _know_ about the C/C++ kits
Many C programmers will look at the purchase of a PIGUI library as a
great opportunity to migrate to C++. If the library takes full
advantage of C++, the programmer will have to use C++ methodologies
(not just a C++ compiler with C syntax) to use it. When one ports a C
program to such a library, one should expect to invest a _significant_
amount of effort learning about (and modifying one's code to take
advantage of) classes, inheritance, and constructors in order to
complete the port. Of course, if one wants one's C code to become C++
code, this is a necessary exercise anyway.
IId. What else is in this Document?
After the introductory stuff, you'll find some more detailed
information about PIGUIs in general followed by tables and prose that
describe specific PIGUI toolkits.
The limits placed on which products are discussed in this posting are
pretty-much provided in the title. The products listed here must be
platform-independent and support at least two different OSs. The
product must be shipping to the general public (i.e., no beta-only or
pre-beta PIGUIs). Moreover, these packages focus on GUI portability,
though some provide a larger breadth of portability features (and,
I've tried to list those, where applicable). No limits (at either the
high or the low end) have been placed on price, even though the prices
in the field vary by more than an order of magnitude (and, now, there
are some free PIGUI kits).
Note that in addition to one of the products listed here, you'll need
(natch) one of the supported host machines, a compiler or interpreter
of the appropriate type, and, for layered GUI packages (q.v.), the
basic GUI builder for that platform.
IIe. Other Issues to Consider.
The difference in GUI programming is most likely the greatest hurdle
when programming for cross-platform portability, but it is not the
only hurdle. Other issues often not delt with by cross-platform GUI
kits, and not addressed by this FAQ, include (but may not be limited
to):
* byte alignment (little-endian vs big-endian) of data types in
files and over network connections
* (more generally) data formats, eg. non IEEE floating point
* memory management (eg. 64k segment limitations)
* text file end-of-line (CR-LF, LF, CR, RS, ...)
* directory / folder navigation and file management services
* multi-threading support
* inter-process communications
* system level functions (OS specific)
* Unicode (16-bit international character set)
When developing an application that may be ported to more than one
platform (even if those platforms are the 16 and 32-bit versions of
Microsoft Windows), you should be aware of the differences between the
target platforms before development commences.
IIf. More Legal Barf.
At this point, I find it necessary to say that this FAQ is my personal
work and that this FAQ does _IN NO WAY_ indicate, reveal, imply,
infer, allude to, display, suggest, symbolize, expose, demonstrate,
hint at, or in any way have anything to do with the thoughts,
policies, suggestions, reflections, decisions, theories, sentiments,
ponderings, rules, dreams, or beliefs of my employer.
I use a lot of names that are trademarks in this FAQ. At no time
should the use of a trademarked name be construed as contesting the
trademark. Those trademarks belong to their respective trademark
holders.
If lots of stuff in this posting looks familiar to you, you're not
hallucinating (well, maybe you are, but not regarding this). Much of
the format (and some of the words) of this FAQ have been lifted (with
permission -- thanks Eric) from Eric Raymond's PC-UNIX FAQ.
Despite the best efforts of the maintainer of this FAQ, some
information contained herein may not be accurate. Please verify any
information (especially prices) with the respective vendors before
finalising any desision. Please also forward any corrections or
comments to the FAQ maintainer, rosko@zeta.org.au
Some information contained in this FAQ is based on the opinions of
users of the respective products, and does not necessarily reflect the
views of the maintainer of this FAQ.
III. GLOSSARY
Here are some words that you'll find in this FAQ along with working
definitions for them.
_API_
Applications Programming Interface. This is what the programmer
sees when he's using a software development kit. Normally, this
would be a set of function calls and/or objects.
_APIW_
Applications Programming Interface for Windows, a standard for
cross-platform development. APIW was adopted by the European
Computer Manufacturers Association (ECMA) on 15 December 1995,
and is currently awaiting approval from the International
Standards Organisation (ISO). APIW is based on the Microsoft
Windows API. Microsoft are not happy; expect to see more legal
action.
_CDE_
The GUI part of COSE (q.v.) is CDE, the Common Desktop
Environment which includes hypertext help, IPC (q.v.), printer
support, and a bunch of other stuff. The look-and- feel is
Motif-like, but there's a lot more than that to CDE. It looks
like CDE certification will be withheld from most if not all)
PIGUIs since CDE includes its own API -- you have to comply
with the API to be certified.
_COSE_
Common Open Software Environment. COSE is the industry-agreed-
upon graphical environment that will augment (significantly)
and replace Motif and OpenLook.
_CUI_
Character User Interface. This is like a graphical user
interface, but it's implemented only with characters (e.g.,
ASCII). Many Platform-Independent CUIs are developed using the
public-domain curses package.
_DDE_
Dynamic Data Exchange. This is a method of inter-process
communication under Microsoft Windows.
_DDEML_
Microsoft Windows' Dynamic Data Exchange Management Library.
_DLL_
Dynamically Linked Libraries. These are, essentially, shared
libraries under Microsoft Windows or OS/2.
_FAQ_
Frequently Asked Questions. A list. . .like THIS one!
_font_
A specific set of shapes for a character set. Old English is
one example of a font (it's more complicated than that, but I'm
not going into it here).
_GDI_
Microsoft Windows' Graphical Drawing Interface.
_GUI_
Graphical User Interface. If you don't know what this is
already, you have quite a bit of homework before this FAQ will
mean anything to you.
_HTML_
HyperText Markup Language, an implementation of a Standard
Generalised Markup Language (SGML). HTML is what Word Wide Web
(WWW) pages are written in; click on `View Source' in your Web
browser to see some.
_IMO, IMHO_
In My (Humble) Opinion. Usually means very opinionated and not
very humble.
_IPC_
Inter-process Communication. It's a generic term for the way
separate processes (or tasks) under an operating system talk to
each other.
_MDI_
Microsoft Windows' Multiple Document Interface. An MDI parent
window is intended to be the main window of an application and
MDI child windows represent separate documents or sessions (or
whatever) under that application.
_Motif_
This is one of the choices of look-and-feel under the X Window
system. In order to have one's software certified as Motif
compliant, one must pay a fee to the Open Software Foundation
(OSF).
_OpenLook_
This is one of the choices of look-and-feel under the X Window
system. It was originally championed by Sun Microsystems before
they agreed to support COSE (q.v.).
_PCL_
Hewlett Packard's Printer Control Language. It's a language for
getting HP printers to display what you want. Several versions
exist, including PCL4 and PCL5.
_PIGUI_
Platform-Independent Graphical User Interface. Actually, it
refers to a platform-independent API (q.v.).
_PM_
OS/2's Presentation Manager. This is the GUI under OS/2.
_PostScript_
This is a printer language owned by Adobe Systems. It's an
interpreted language that is used by a wide variety of
printers. This is yet another technology created by Xerox Parc.
_SDK_
Software Development Kit. It's software to help a programmer
build other software.
_Unicode_
This is an international (16-bits per character) character set
in which all the characters from the various supported
international languages co-exist at once. Among the supported
character sets is the Latin alphabet (as used for English and
other languages), Hebrew, and kanji.
_WYSIWYG_
What You See Is What You Get (pronounced Wizzy-Wig). It's a way
of allowing the user of a package to see the package's output
(in its ultimate format) while the user is developing using
that package. Most WYSIWYG software is really WYSISWYG
(pronounced Wizzy-Swig) -- What you see is sort-of what you
get.
_Xlib_
This is the library of X-Windows functions distributed by MIT
with the X Window system (hence, it's free -- just like X
Windows). One can generate software that is compliant to the
OpenLook or Motif look-and-feel (or any other, for that matter)
using Xlib.
_YMMV_
Your Mileage May Vary.
IV. USER-INTERFACE APPROACHES
Most, if not all, of the products in this FAQ take one of three
approaches to providing platform independence. The two most common
approaches are the `layered' and the `emulated' user interface but an
up-and-coming approach is `API emulated' interface.
Products using a layered interface access native, third party,
GUI-building toolkits to provide the look-and-feel compliance for each
particular GUI. Layered user interfaces have the advantage that, since
they depend on other products which concentrate on a single GUI, they
have to provide less software (and, hence, are usually less expensive)
than emulated interfaces. Layered interfaces are also more likely to
get the native look-and-feel correct on all platforms. Most of the
PIGUI products in this FAQ fit in this category.
In an emulated user interface, the PIGUI's resultant code produces
low-level calls and all the look-and-feel compliance is handled by the
PIGUI software itself (e.g., for OpenWindows support, the software
would _NOT_ produce an XView program that must be compiled with the
XView toolkit; the software would produce code that interfaces
directly with X intrinsics). To provide an emulated user interface, a
vendor has to develop a lot of extra code for look-and-feel support.
Emulated user interfaces have the advantage that someone on a Motif
workstation, for example, can see how the Macintosh-style UI will look
(since the look-and-feel is part of the product). Emulated interfaces
have the opportunity to provide a faster GUI than does a layered
interface; in addition, it does not require you to purchase (or learn
how to use) other kits to build GUI software.
A third approach to platform independence is emulating one of the
supported target's APIs (usually, the Microsoft Windows API) to target
other GUIs. With one of these products, one would program using the
emulated API and the code would be (to the extent to which the product
provides portability) portable to other GUIs.
V. FEATURES AND SUPPORTED PLATFORMS
[Platform vs Price]
[Features, Other Nifties, and Hidden Costs]
[Hardware Vendors Supported]
[Support Features]
The products in this FAQ are pretty similar in their basic
functionality; they each provide function calls or classes that allow
the user to build windows, buttons (regular as well as radio buttons
and check boxes), menus, menu bars, and the like. Areas of contention
seem to be things such as:
* support for the platforms you need,
* the choice of implementation language,
* availability and price of source code,
* printer support,
* support for international character sets,
* capability to support draw-package-like features,
* bitmap (and icon) support,
* the approach to platform independence (see below),
* nifty high-level widgets, and
* price (complete price including royalties and distribution
charges),
Of course, each user will have his own requirements; YMMV.
Now, on to the comparisons. To interpret the tables below, bear in
mind the following things:
* If information for a cell is unknown, a period ('.') is placed
there. It is the ultimate goal of the author to eliminate all of
these.
* If a PIGUI package does not support a feature or platform in the
table, the cell is marked with a hyphen ('-').
* If a feature or platform is not currently supported, but that
support is planned, the cell is marked with ('soon'). Support in
the form of beta versions (as well as longer- lead versions) fit
in this category.
* If a price is known for a product, that price is inserted in the
appropriate cell of the table. If that price is not known (but the
feature is supported), the cell is marked with `yes' -- it is
hoped that all `yes' entries will be replaced with prices `Real
Soon Now'.
Note that prices in this FAQ are the MSRP (Manufacturer's
Suggested Retail Price). The street price for some of these
products can be _significantly_ less.
* Tables are annotated, where appropriate, with letters (in
parentheses where it doesn't take up too much room). The
appropriate notes are found below the table. Also note that as
information changes, some of the notes will disappear. The note
letters will not necessarily be in sequence -- get used to it.
Another note: given that Sun Microsystems has announced its
abandonment of OpenLook in favor of COSE, I'm not sure I'd hold my
breath for the OpenLook betas in the tables below. It may just not be
worth it for some of the vendors to support a product that has limited
(at best) application (in fact, at least one vendor has abandoned an
existing OpenLook product).
The following products are listed in this FAQ. Abbreviations are given
for product names which are too long to go into the tables.
_Alleg_
Allegris Workshop, Intersolv (was C++/Views by Liant)
_CLIM_
Common Lisp Interface Manager, several vendors
_DCLAP_
Don's Class Application library, Don Gilbert
_Eiffel_
EiffelVision, ISE
_Galaxy_
Galaxy, Visix
_Graph_
GraphApp, by Lachlan Patrick
_ILOG_
ILOG VIEWS, ILOG
_JAM_
JAM, JYACC.
_Java_
Java AWT, Sun Microsystems Inc.
_libWxm_
libWxm, Visual Solutions
_MAINWin_
MAINWin/Cross-Development Kit, MAINSoft Corporation
_MetaCrd_
MetaCard, MetaCard Corporation
_Menuet_
Menuet/CPP, Autumn Hill Software, Inc.
_MEWEL_
MEWEL UIL, Magma Systems
_MS-MFC_
Microsoft Foundation Classes as provided by _Microsoft_ Visual
C++ and related products. This does NOT include non-Microsoft
vendors who also support MFC (they are listed separately).
_NuTCRAC_
NuTCRACKER, DataFocus, Inc.
_OberonF_
Oberon/F, Oberon Microsystems
_OI_
Open Interface, Neuron Data
_OpenUI_
OpenUI, Open Software Associates
_Qt_
Qt, Troll Tech
_ScrMach_
Screen Machine, Objective Interface Systems, Inc.
_StarVie_
StarView, StarDivision
_SUIT_
Simple User Interface Toolkit, University of Virginia
_VisAge_
VisualAge for C++ and Smalltalk, IBM
_VisWork_
VisualWorks, Openware
_Wind/U_
Wind/U, Bristol Technology
_WMMOTIF_
WM_MOTIF User Interface Library, Software UNO, Ltd.
_WNDX_
WNDX GUI Toolkit, WNDX
_wxWind_
wxWindows, Artificial Intelligence Applications Institute
_XVT_
XVT Portability Toolkit, XVT Software Inc.
_YACL_
Yet Another Class Library, M. A. Sridhar.
_zApp_
zApp, RogueWave (Inmark have merged with RogueWave)
_Zinc_
Zinc, Zinc
In addition, I'd like to mention the following products that are not
mentioned in this document (well, not except for here):
_Appware_
This product has been _de-emphasized_ (which is commonly
believed to mean `dropped') by Novell.
_Aspect_
Looks like `Open' has gone out of business.
_CommonV_
Word has it that Computer Associates has stopped supporting
Glockenspiel CommonView.
_GUILD_
this seems to be part of the software configuration management
tool, Continuus, rather than a toolkit in its own right
_Object Windows Library_
Borland seem to think `cross platform' means all varieties of
Microsoft Windows.
_Presentation Services Manager_
after months of fruitless searching, I don't believe this is
around anymore
_STDWIN_
This product is no longer supported, but it's free from
ftp://ftp.cwi.nl/pub/stdwin/.
_Vibrant_
I'm told this is no longer supported, but contact
info@ncbi.nlm.nih.gov for more information.
_Table 1: PLATFORM VS. PRICE (US$ except where noted) _
_Please_ check with vendor, as many of these prices may be out of
date!
X/ Open- Next-
Vendor ASCII DOS Win(s) Win/NT OS/2 Motif Look Mac PenOS Step
------- -----------------------------------------------------------------------
Alleg - - 995(f) 995(f) 995 995 - - - -
Amulet - - - free - free - free - -
CLIM . . . . . yes yes soon . .
DCLAP . . (k) . . (k) . (k) . .
Eiffel - - . . - . . soon - .
Galaxy - - 9600m 9600m 9600m 9600m 9600m 9600m - .
Garnet - - - - - free - free - .
Graph - - free free - free - soon - -
ILOG - - 6500 10000 10000 10000 - - - -
JAM yes yes yes . . yes yes . . .
Java - - - yes yes yes . yes - .
libWxm - - (h) (h) - yes - - - .
MAINWin - - (h) (h) - 8000n - - - .
Menuet - 499 599 - 599 999 - . yes .
MetaCrd - - 995(l) 995(l) - 995(l)- soon - -
MEWEL 1595 395u (h) (h) 795 yes - - - .
MS-MFC - - yes 399 - - - 1999 - -
NuTCRAC - - - 2995 - (h) - - - -
OberonF - - 400v 400v - - - 400v - -
OI yes yes 5800 6850 6850 9850 9850 4800 . .
OpenUI yes - 3500 soon 4900 7900g - 3500 (w) .
Qt(q) - - - 1470 - 1470d - - - -
ScrMach 495 495 1995 soon - (p) - - - -
StarVie - - 499 995 495 1499 1499 499 - -
SUIT . (k) (k) . . (k) (k) (k) . .
Tcl/Tk free soon free free soon free free free - .
TWIN - - (h) (h) soon (t) . (t) - -
V - - free free soon free - - - -
VisAge - - . . . . . - - -
VisWork . . 2995 . 2995 4995 4995 2995 . .
Wind/U - - (h) (h) - 9950 - - - .
WMMOTIF 1500 - (h) (h) - 1995 - - - .
WNDX . 1000 1000r 1000r 1000r 1000r - 1000r - -
wxWind soon - free free soon free free free - .
XVT - - 1950 6300ab 1950 6300a (c) 1950 . .
YACL - - free free free free - - - -
zApp(i) - - 1495 1995 1995 4995d - soon - .
Zinc(e) 1499e 499e 499(f) 499(f) 499e 1499 - 499ej 499 .
------- -----------------------------------------------------------------------
Vendor ASCII DOS Win(s) Win/NT OS/2 X/ Open- Mac PenOS Next-
Motif Look Step
(a)
This is the price for platforms other than x86-based computers.
For x86-based machines (under DOS/UNIX/Xenix -- where
applicable), the price is $1950.
(b)
For non-x86 platforms, check for availability -- Alpha and MIPS
supported.
(c)
Support for this product has been discontinued.
(d)
per platform, e.g. once for each of SGI, HPUX, etc.
(e)
Zinc requires a single-time purchase of the Zinc GUI Engine at
$499, plus the cost for each individual GUI (e.g. HP-UX Motif =
$499 + $1499). They also offer several packages, called
`bundles', which reduce the total price when you buy several
platforms. These are PC (Engine + DOS, Win16/32, OS/2, Mac)
$1999; Motif (Engine + all Motif platforms) $4999; Everywhere
(Engine + all platforms) $5999. Unicode is $4999.
(f)
Win16, Win32s, and Win32 are packaged together.
(g)
for a PC-based Unix, we're talking $5850.
(h)
This product uses the API that's native on this platform (e.g.,
support for Win32 under MS-Windows NT); so, in that sense, it
supports this platform.
(i)
You can purchase the entire bundle of libraries with zApp
Factory for one platform for $8995.
(j)
Pre-release.
(k)
This product is free for non-commercial use. If you make a
profit, you'll have to check with the vendor for pricing and
availability.
(l)
A single license (any platform) can be used for all supported
platforms.
(m)
Each version of Galaxy is able to use the Motif, OpenLook, OS/2
CUA, or Windows look-and-feels. On the Macintosh version the
Mac look-and-feel is available along with the others listed
above. Also: This is the C price. You're looking at $12.2K for
C++.
(n)
The cost drops for subsequent copies. Number 2 is $3500 and
number 3 is $2000.
(p)
The pricing here is a little complicated. It was explained to
me as follows. "We have both systems based pricing and floating
license pricing. The system based pricing runs from $3K (small
Sun or SCO) to $24K (big VAX or Sun 2000). The Unix Motif
floating license pricing is $6K for the first license and $3K
for each additional license."
(q)
Qt is actually sold in terms of Norwegian Krona, so US prices
may vary. A `Duo pack' for Win32 and UNIX/Motix for one
developer is NOK13950, or about US$2200.
(r)
Per programmer per platform per annum. Check other options
online.
(s)
That's Microsoft Windows (TM).
(t)
Annual subscription; Willows has three levels of subscription:
Basic for $250 p.a., Standard for $1000 p.a., and Premium for
$5000 p.a. Non-commercial users can download TWIN for free, or
buy a CD-ROM for $80.
(u)
Price does not include source code (the other MEWEL products
do).
(v)
Price includes all platforms supported, in one package.
(w)
Does work on PenOS systems, but does not _yet_ have Pen
extensions.
(x)
That's OpenLook.
(y)
That's NextStep.
(z)
DOS Text is sold separately from DOS graphics.
What we're looking at is two groups of products. The lower-priced
group is usually C++, is a more recent introduction to the market, is
almost always a layered GUI, and concentrates on PC-based operating
systems. Products from the higher-priced group usually offer a more
stable platform with both greater breadth and depth than does the
previous group. In either case, the cost premium for UNIX support is
usually a factor of 3 -- that is, the GUI package for a UNIX platform
for any PIGUI product is usually 3 times as expensive as the version
for DOS/MS-Windows. Other `personal' operating systems (e.g. OS/2 and
the Mac) vary as to whether they follow the UNIX pricing or the PC
pricing. These are merely observations, your mileage may vary.
_Table 2: FEATURES, OTHER NIFTIES, AND HIDDEN COSTS _
Vendor Type(p) LAF(i) Eval(a) Source Royalty Distrib(z) Language Builder(g)
------- -----------------------------------------------------------------------
Alleg layered native (j) free no . C++ yes
Amulet layered native - free free free C++ soon
CLIM . native (u) . . . Cmn Lisp (u)
DCLAP . native free free . . C/C++ .
Eiffel emulate native . . . . Eiffel yes
Galaxy emulate native (d) (e) no . C/C++ yes
Garnet emulate custom free . . . Cmn Lisp yes
Graph emulate native free free . . C no
ILOG emulate native 30 no no - C++ yes
JAM layered native . yes no . C yes
Java layered native free (l) . . Java (l)
libWxm API emu native 60 4995 . . . .
MAINWin API emu native 30 no (w) (w) C/C++ yes
Menuet . native . . . . . .
MetaCrd emulate native free no no free MetaTalk yes
MEWEL API emu native . (r) no no C(s) (t)
MS-MFC . native . . . . C++ yes
NuTCRAC API emu native . yes . yes C/C++ .
OberonF emulate native free free no no Oberon yes
OI emulate native (x) . no $8,000 C/C++(k) yes
OpenUI layered native (q) (e,b) no . C(h) yes
Qt emulate native . . no no C++ .
ScrMach layered native 30 (e) no . Ada free
StarVie layered native 30 6000 no free C++ yes
SUIT . native free free . . C .
Tcl/Tk . custom free free no . Tcl(c) yes
TWIN API emu native free free no no C/C++ .
V emulate native free free no no C++ .
VisAge layered native . . . . C++,Smal yes
VisWork emulate native 30(j) 100000 yes . SmalTalk yes
Wind/U API emu native 30(j) (f) no $19,500/yr C/C++ (t)
WMMOTIF API emu native (j) 7500 no no C/C++ (t)
WNDX layered native 30 (f) no . C yes
wxWind . native free free no . C++ (n)
XVT layered native (j) yes no . C/C++ yes
YACL . native free free no no C++ .
zApp layered native 60(j) free no . C++ $499
Zinc layered native 60(j) free no no C++ yes
------- -----------------------------------------------------------------------
Vendor Type(p) LAF(i) Eval(a) Source Royalty Distrib(z) Language Builder(g)
(a)
This is the number of days that the product can be evaluated.
Inside this time, the software can be returned for full money
back (minus, possibly, a cost for the evaluation -- check with
the vendor).
(b)
Open Software Associates is willing to make a deal for source
on a case-by-case basis.
(c)
The Tk part of Tcl/Tk can be used from C/C++ and Java also.
There is a shell for Ada, called TASH. There is a version of Tk
for Perl and Scheme (Unix et al).
(d)
Give them a P.O. They'll give it back if you don't like the
product.
(e)
Source code is held in an escrow account. You can't get to it
unless the company goes belly-up. This helps you protect your
investment -- if the company goes belly-up, you can do the
software maintenance yourself.
(f)
You can buy it, or you can get an escrow account.
(g)
This is a WYSIWYG GUI Builder.
(h)
Pascal, Cobol, and Ada are supported, too, but there wasn't
room.
(i)
Look And Feel - as claimed by the vendor. Native means on OS/2
it looks like a Presentation Manager app, on Macintosh it
_doesn't_ look like a MS-Windows app, etc. Custom means it has
made up a new one of its own.
(j)
There is a cost for evaluation.
(k)
They've taken a `wrappers' approach -- you can't subclass from
their C++ classes.
(l)
Source to the JDK and AWT is available, unknown (to me) what
licence conditions apply. 3rd party GUI builders abound in beta
release.
(n)
Uses SunOS's DevGuide.
(p)
Type means `emulated', `layered', or `API emulated'. This
describes how the product approaches support for various GUIs.
(q)
They charge (about $500) for a 90 day (money applicable to
purchase) evaluation period. Included is a 1-day training
course and phone and fax support.
(r)
ASCII, OS/2, and Unix versions come with source for free. The
DOS version is an additional $400 with source. The Motif
version can also be purchased.
(s)
You can program in the MS Windows API or use MFC, OWL, or
C++/Views.
(t)
Any C/C++-based (depending on the nature of the product) MS
Windows Application Builder will work.
(u)
Different LISP vendors support CLIM -- each provides a
different set of options and pricing structures.
(w)
MAINWin kind-of charges royalties and/or distribution... there
are two schemes, `per product' and `machine general'. When
there is more than one product installed on a machine, `machine
general' is best, otherwise probably `per product' would suit.
(x)
These guys have a `flexible evaluation structure'.
(z)
This represents a cost per platform or application (check with
the vendor) distributed. It's not technically a royalty since
the cost is not per unit of software shipped, but it is a cost
that one has to consider. These costs are usually limited to
commercial applications.
_Table 3: HARDWARE VENDORs SUPPORTED _
This table makes the most sense for operating systems that work on
various types of hardware (e.g., UNIX, Windows NT) rather than for OSs
dedicated to a certain type of hardware (e.g., DOS, Microsoft Windows,
Macintosh).
Win32 Sun A U
D O S A Win Mac +++++ +++++ X l L
+++++++ S +++ +++ O M O S P O t A M H P i N
G T 1 3 C 3 3 6 P S x A I p n S I / V r V T S I P A S m n Q E
f x 6 2 I . 2 8 P / 8 X P e O o S U M i M & C P U I G i u N X
x t x x I 1 s k C 2 6 P S n S l C x S x S T O S X X I d x X T
=========================================================================
Alleg - - - - - y c - - c c . - - c c - c . - . . . - c c c - . . .
Amulet - - - - - - - c c - c . . - c c . c . . . . c c c c c . c . .
CLIM . . . . . p . p . . p . . c c c . . c . . . c c c c c . . . .
DCLAP . . . . . c . c c . c . . . c c . c . . . . . . . . . . c . .
Eiffel - - - - - y . p p - c . . c c c . . c c c . c c c c c c c . c
Galaxy - - . . - - y y c y y c b y y c . c c y y . . c y y c . i . .
Garnet - - - - - - - c c - - - - . c c . c . . . . . . c c c . . . .
Graph - - - - - c c p p - c . . - c c . c . . . . c c c c c . c . .
ILOG - - - - - c c - - c c b - c c c - c - - - - - - c c c - . . .
JAM - - - - c c c c c - c c c c c c . c c . c c c c c c c c . . .
Java - - - - - p p . y c y . . . c y . . . . . . . . y c c . y . .
LibWxm . . . . . e . . . . . . . . c . . . . . . . . c c c c . . . .
Menuet . . . c . c . . . c . . . . . . . . . . . . . . . . . . . . .
MAINWin - - - - - e . - - - c c c c c c p c - - - - c - c c y - - - -
MetaCrd - - - - - - - p p - c - - - c c - c - c - c c - c c c - c - -
MEWEL c c . c c e . - . c p p p - c c - - - - - - c - c c - - . . .
MS-MFC - - - - - y y y b . y y y - - - - - - - - - - - - - - - - - -
NuTCRAC - - - - . - - - - - y c c - - - e e e e e e e e e e e e e . .
OberonF - - - - - . c c . - c - - - - - - - - - - - - - - - - - - - -
OpenInt . . . . . c . c c c c c . c c c . c c c c . c c c c c . i . .
OpenUI - - - - y y . y p y c . . - c . c c c c c . c - c c - c . . .
Qt - - - - - - - - - p y . . - c c . y - - - . c . c c c . y . .
ScrMach - c c c c c . - - - p p p - c . c . . c c . c - c c c - . . .
StarVie - - - - y y y y y y y c c c c c - . . p p . p p p c p - p . .
SUIT c . . . . c . c c . . . . c c c . c . . . . . . c c c . . . .
Tcl/Tk p - - - * - c c c p y y y c c c . c c y y . c c c c c . c c c
TWIN - - - - - e e c c p e e e . c c . c - - - c c c c c c . c c .
V - - - - - y . - - p c . . - c c . y . . . . c c y c c . y c .
VisAge - - - - - . . . . c c c . . . . . . . . . . . . . c . . . . .
VisWork . . . . . c . c c c c c . c . . . c . c . . . . c c . . . . .
WNDX c - c c . c c c c c c . . . c c . . . . . . . . c . c . c . .
WMMOTIF - - - - c e - - - - e - - - c c c c - - - c c - c c - - c . .
Wind/U . . . . . e e . . . e e e . y c . c c . c . . p c y y . . . .
wxWind - - . . p c . c c p b - - c c . c . . c . . c c c c y . c . .
XVT - - - - y c c c c c c c - x c c x c c x c c c c c c c - p . .
YACL - - - - - y c - - c c c c - c c . c . c . . c . c c c . c . .
zApp - - - - . c c - - c c c . - y c . - - - - . y . y y c . . . .
Zinc y y y y c y y y y y y c . - c c . c c . p c c c c c c c i c c
=========================================================================
D O S A Win Mac O Win32 Sun I A O U V A S M H A S P L Q N
+++++++ S +++ +++ S +++++ +++++ S X V l M T C I P I G m i N E
G T 1 3 C 3 3 6 P / x A M O S S C P M t S & O P U X I i n X X
f x 6 2 I . 2 8 P 2 8 X I p n o / S r T S X d u T
x t x x I 1 s k C 6 P P e O l U i x
S n S x x
y
indicates that support has been verified by a user report.
c
indicates that the hardware/OS is claimed to work in vendor
literature.
e
indicates that this is the API emulated by the software.
b
indicates that the hardware/OS is in beta.
p
indicates that the hardware/OS is planned, but not yet in beta.
x
indicates that support for the hardware/OS is being PHASED OUT.
i
indicates that I've heard that the vendor has ported their
libraries, but they are only available in-house.
.
indicates that whether this combination works is unknown.
-
indicates that the vendor doesn't support that hardware.
*
points you at footnote info.
Sun - Open:
SunOS OpenLook
Sun - SnOs:
SunOS Motif
Sun - Sol:
Sun Solaris Motif
AXP/Ux:
AXP Digital Unix
OVMS:
DEC AXP OpenVMS
AT&T:
AT&T System 3000
SCO:
SCO Unix/Xenix
SGI:
Silicon Graphics Irix
Pmid:
Pyramid
Footnotes, denoted by `*'
Tcl/Tk
There is ASCII support for Tcl/Tk, but it is limited. However,
it is claimed that `most scripts will run' on it.
_Table 4: SUPPORT FEATURES _
With 800 FTP Read Support
Vendor sale number? BBS? Compuserv? server? USENET? Other contracts
------- -----------------------------------------------------------------------
Alleg . yes no no yes yes (w) 17%/yr (v)
Amulet . no . . yes . (wb) -
CLIM (c) (c) (c) (c) (c) (c) (c) (c)
DCLAP none no no no yes yes . -
Eiffel . no no no yes . (w) yes
Galaxy none yes no no yes yes (wk) $1,995/yr
Garnet none no no no yes yes (wb) no
Graph none no no no yes no (w) .
ILOG 30d yes no yes yes yes (wn) 15%/yr
JAM . ? . . . . (w) .
Java . . . . yes yes (w) .
libWxm . ? . . . . . .
MAINWin 90d yes . . yes . (wh) $2000/yr(e)
Menuet . ? . . . . . .
MetaCrd forever no no no yes yes (bhw) (i)
MEWEL yes no yes yes yes yes (w) $250/yr
MS-MFC . no . . . no (w) .
NuTCRAC 1 year yes no no no yes (w) $500-$750/yr
OberonF . no no no yes yes . yes
OI . ? yes . . yes (w) $1200-$2400/yr
OpenUI 90d yes soon no yes yes (wh) 12%-30%/yr
Qt 1 year no no no yes . (w) 30%/yr
ScrMach 1 year yes no no no yes (hk) 20%/yr
StarVie . yes yes yes no yes (w) -
SUIT . no . . yes . (wd) -
Tcl/Tk (t) no no no yes yes (w) .
TWIN . no no no yes . (w) (p)
V no no no no yes no (w) .
VisAge . yes . . . . (w) .
VisWork (f) yes yes yes (g) . . $675/yr
Wind/U . no no no yes yes (wn) 12%-20%/yr
WMMOTIF 30d yes yes yes yes yes (w) 20/yr
WNDX 30d no yes . soon no (hnw) (p)
wxWind . no no no . yes (w) -
XVT 6 mon. no yes yes yes (r) (wb) (call)
YACL - no no no . yes . -
zApp forever yes yes yes yes yes (w) $395-$1995(a)
Zinc forever no yes yes yes yes (w) $499/yr(j)
------- -----------------------------------------------------------------------
Vendor With 800 BBS? Compuserv? FTP Read Other Support
sale number? server? USENET? contracts
(a)
$395 for Windows 3.1, $495 for Win32 (95 and NT) and OS/2,
$1295 for Unix, or a complete package (all platforms) for
$1995.
(b)
There's a mailing list.
(c)
CLIM is a multi-vendor product. See the individual vendor for
information.
(d)
There is a SUIT mailing list. Send email to
suit-users-request@uvacs.cs.Virginia.EDU for more information.
(e)
That's for one person. The second person is $700, and
subsequent users are at $500.
(f)
Installation and temporary evaluation help plus one free
general support question.
(g)
Gopher service.
(h)
Support (including distribution) by e-mail.
(i)
Phone support available on a `per incident' basis
(j)
This is for their higher-end support. Simple support still
comes for free, but telephone and fax support stops after 60
days.
(k)
They support an email mailing list.
(n)
Newsletter.
(p)
Cost of technical support per year == purchase price of
product.
(r)
Informally.
(t)
There are commercial releases, which offer support. Check out
the Commerical Uses of Tcl/Tk FAQ - Part 2. http://www.cpu.com
(w)
WWW support.
(v)
Intersolv has `QuickStart' license plus service packages for
extra bux, which can accelerate your startup.
_________________________________________________________________
Ross McKay
email:rosko@zeta.org.au
$RCSfile: pigui1.txt,v $; $Revision: 3.1 $; $Date: 1997/03/02
08:37:38 $