home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 14 Text
/
14-Text.zip
/
proscons.zip
/
proscons.txt
< prev
next >
Wrap
Text File
|
1995-11-29
|
22KB
|
354 lines
The (highly unofficial) FIDONET OS2PROG C++ compiler pros and cons list
───────────────────────────────────────────────────────────────────────
┌───────────────┤ Borland C++ 2.0 for Intel OS/2 ├───────────────┐
│ │█
│ [-] OS/2 Developers' Toolkit (*NOTE*) [*] IDE │█
│ [*] PM Class libraries [ ] Workframe (*NOTE*)│█
│ [*] Ships on CD-ROM (*NOTE*) [-] SOM support │█
│ [ ] DirectToSOM C++ │█
│ [ ] Intel 586 FDIV workaround │█
│ │█
│ No FIDONET address. The Internet address has stopped working. │█
│ │█
│ Borland International (U.K.) Ltd, Twyford, READING RG10 8BR │█
│ Telephone : +44 1734 321150 Fax : +44 1734 320017 │█
└────────────────────────────────────────────────────────────────┘█
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
── NOTES ──
WorkFrame support is provided (by BC_WF.DLL, TLINK_WF.DLL, and
BORLAND.PRF), but it isn't documented at all. Borland has integrated
the OS/2 Developer's Toolkit into its own toolset. However, it is the
2.0 version of the Toolkit, with some glaring errors in the
documentation and (more importantly) the header files, that were
corrected in Toolkit 2.1. Some tools from the Toolkit, such as NMAKE
and LINK386, are omitted because Borland's own toolset provides
equivalents. Other tools, such as the SOM compiler, are completely
missing.
Third party tools are now available for Borland C++ and OWL/PM, such as
Professor OWL from March Software (demo versions widely available).
── PRO ──
Quick development and fast compilation. Will run on an 8Mb machine.
Supports 586. Upward compatibile with Borland C++ for DOS source
(apart from recent changes to C++) and toolset (which Borland users
from other platforms will find familiar). Neat and easy to use IDE,
that integrates editor, compiler, linker, debugger, and API reference,
and that allows you to compile and edit at the same time. Full syntax
colouring in the editor, and the debugger uses colour. Good standalone
PM debugger (Turbo Debugger GX), and standalone text-mode debugger
(which can both debug PM and text mode apps). Comes with Borland's own
very good PM Resource Workshop, including tools to migrate Windows
resources to PM. 32-bit in-line assembler (BASM) and standalone
assembler (TASM). Full source to all libraries available. Full
run-time library source available (included in CD version). C++
compilation is very fast. Supports pre-compiled headers. Borland MAKE
has the ability to batch up successive calls to the compiler from a
makefile, reducing overhead, and also automatically tracks header
dependencies.
── CON ──
IDE uses MDI paradigm, eating screen space, and has trouble with some
Super VGA display resolutions. The IDE also has trouble indexing the
on-line documentation, and calling up the index can cause the user
interface to go into navel gazing mode for several minutes. No support
for writing 16-bit callable code and no 16-bit libraries (which rules
out device drivers). Support for calling 16-bit code (thunking) has
serious bugs in. The optimiser is mediocre, and you may have to write
defensively to take its quirks into account. The code generator has
some serious flaws (stack probes are not generated). There are a lot
of non-standard items in the libraries and headers ("Borlandisms").
Poor support for POSIX.1 in the libraries. Resource workshop isn't as
good as Borland *could* do. The tools are slightly idiosyncratic (MAKE
has difficulty with macros that are environment variables). OWL for PM
does not support any CUA91 controls (although writing your own is not
hard). Poor technical support (bugs are rarely acknowledged, and some
widely known ones still remain unfixed).
┌──────────────┤ Watcom C++ 10.5 for Intel OS/2 ├────────────────┐
│ │█
│ [*] OS/2 Developer's Toolkit [*] IDE (*NOTE*)│█
│ [ ] PM Class libraries [*] Workframe │█
│ [*] Ships on CD-ROM (*NOTE*) [*] SOM support (*NOTE*)│█
│ [ ] DirectToSOM C++ │█
│ [*] Intel 586 FDIV workaround │█
│ │█
│ FIDONET 1:221/186.0. All Watcom patches are available from │█
│ their FIDONET site. File Request FILES from them for details. │█
│ Send mail to "sales". │█
│ │█
│ Watcom International Corp, 415 Philip Street, Waterloo, │█
│ Ontario N2L 3X2, CANADA. │█
│ Telephone : +1 519 886 3700 Fax : +1 519 747 4971 │█
└────────────────────────────────────────────────────────────────┘█
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
── NOTES ──
Some parts of the IDE are Windows programs (although the resource tools
supplied in the OS/2 Developers' Toolkit may be substituted for them).
The SOMObjects Developers Toolkit version 1.0 is bundled, and version
2.1 is available from Watcom.
── PRO ──
Highly portable (DOS+Windows, extended DOS, Intel OS/2, Netware). Able
to generate applications for multiple platforms from OS/2 with little
or no source changes. Able to debug DOS and Windows applications
running in separate sessions within OS/2. Has its own IDE similar to
Workframe, connecting editor, compiler, linker, and on-line help, which
is not a tightly integrated IDE (the editor used can be configured).
All documentation is on-line, as are example demo programs for all
standard library functions. Supports pre-compiled headers. Industrial
strength optimiser, which is reasonably configurable. Develops for
both 16 and 32 bit platforms. Supports 586. Supports customisable
function calling conventions (via pragma aux). Add-on kit available
from Watcom's FIDONET node for device driver development. 32-bit
assembler (WASM). Excellent technical support (Watcom will ship
patches to major bugs to registered users).
── CON ──
The tools are counterintuitive to those coming from other environments.
The linker is unusual and idiosyncratic, as it combines DEF file and
LNK file in one (but with Watcom's own syntax), and can get pretty
hairy when linking for a different platform to the host environment.
Printed manuals are extra and will almost double the price of the
product. The documentation is badly edited, repetitive, and in cases
misleading. The macros and keywords that are available for
"compatibility" tend to obscure the native features. At least three of
the bundled toolkits, for which you pay, aren't of any relevance to
OS/2 development. The SOMObjects Developers' Toolkit supplied is only
for version 1 of SOM, whereas OS/2 WARP requires version 2 (installing
version 1 SOM.DLL will disable Workplace Shell -- be warned!). The
install program is not bright enough to realise when it is downgrading
your SOM support. The technical support has been outsourced, and
anything more than help for installing the program and compiling the
sample code (which is free of charge) now costs a significant amount.
The C++ runtime library is not available in DLL form.
┌───┤ MetaWare High C++ 3.32 for Intel OS/2 and PowerPC OS/2 ├───┐
│ │█
│ [*] OS/2 Developer's Toolkit [ ] IDE │█
│ [ ] PM Class libraries [*] Workframe │█
│ [ ] Ships on CD-ROM [*] SOM support │█
│ [*] DirectToSOM C++ (SOM 2.1 and 3.0, and Distributed SOM) │█
│ [*] Intel 586 FDIV workaround │█
│ │█
│ No FIDONET address. Try techsales@metaware.com . │█
│ │█
│ MetaWare Inc., 2161 Delaware Avenue, Santa Cruz CA 95060 USA. │█
│ Telephone : +1 408 429 META (6382) │█
│ Fax : +1 408 429 WARE (9273) │█
└────────────────────────────────────────────────────────────────┘█
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
── NOTES ──
The OS/2 Developers' Toolkit 2.1 that is supplied supports SOM 1.x.
DirectToSOM C++, however, supports SOM 2.1 and SOM 3.0 natively. The
SOM.DLL supplied with High C++ is a later release than the one supplied
with WARP, but the WARP version may be used as long as SOM 3.0 support
is not required.
── PRO ──
Highly portable (almost identical compilers are available for AIX,
DOS+Windows, extended DOS, Intel OS/2, PowerPC OS/2, and UNIX System
V). This is the only C++ compiler currently available for PowerPC OS/2
(see the DevCon CD-ROMs). Excellent POSIX.1 support (due to UNIX
influence). Industrial strength optimiser, with every individual
optimisation separately configurable. Supports 586. Supports
customisable function calling conventions. Proposed ISO C++ features
(namespaces, exception aware classes) not in any other current compiler
on any platform. C++ language extensions include iterators, case
ranges in switch statements, nested functions, pass-by-name. Supports
per-thread variable declarations. Supports developing Workplace Shell
objects with DTS C++ (all DTS C++ headers for WPS are provided, along
with a chapter in the DirectToSOM Developers' Guide on WPS
development). Ships with the excellent Rogue Wave Tools.h++ class
libraries (with everything from strings to databases). Comes with
example demo programs for all standard library functions. Excellent
and detailed manuals. Excellent technical support (Metaware will ship
patches to major bugs to registered users).
── CON ──
Terrible text-mode debugger. No 16-bit support for Intel OS/2
whatsoever (Pre-thunked versions of VIO16/MOU16/KBD16 are supplied in
the runtime library, though). Requires that you have the SOMObjects
Developers' Toolkit for Interface Repository development work. Most
expensive of all of the C++ compilers listed here.
┌────────────┤ IBM VisualAge C++ 3.0 for Intel OS/2 ├────────────┐
│ │█
│ [*] OS/2 Developer's Toolkit [ ] IDE │█
│ [*] PM Class libraries [*] Workframe │█
│ [*] Ships on CD-ROM [*] SOM support │█
│ [*] DirectToSOM C++ (SOM 2.1 only) │█
│ [ ] Intel 586 FDIV workaround │█
│ │█
│ No FIDONET address. Try vacpp@vnet.ibm.com . │█
│ │█
│ IBM U.K. Ltd. Personal Systems Enquiry Centre, PO Box 32, │█
│ Alencon Link, Basingstoke RG21 1EJ. │█
│ Telephone : +44 1256 841818 Fax : +44 1256 28912 │█
└────────────────────────────────────────────────────────────────┘█
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
( The previous version was called IBM CSet++ 2.1. )
── NOTES ──
── PRO ──
*The* standard for OS/2 development. An industrial strength optimiser,
slightly lagging MetaWare and Watcom (which are the ackowledged
industry leaders). Supports 586. Can call 16-bit code from 32-bit
code and generate 32-bit code that is callable by 16-bit code.
Excellent PM debugger (ICSDEBUG). Toolset is easy to learn for those
upgrading from Microsoft compilers, and is well crafted. Has the
ability to keep the compiler executables resident in memory across
compiles, thereby reducing loading delays for multiple successive
compiles. Supports pre-compiled headers. Good technical support (the
usual IBM CSD system for updates and bugfixes). Taking a leaf from
Borland's book, IBM now integrates the SOMObjects Developers Toolkit
and the OS/2 Developers' Toolkit into the compiler instead of them
being separate components. The on-line help has been improved, with
additional "How Do I..." manuals giving answers to many frequently
asked questions. Debug memory management and custom heaps allow fine
control of memory usage within an application, including incremental
dumping of heap usage as an application runs. ICSDEBUG knows about
both debug memory management and DirectToSOM C++ objects. The
DataBuilder and VisualBuilder tools bundled with the compiler assist in
the construction of databases and graphical user interfaces to
applications. LPEX, a programmable syntax colouring programmers'
editor (yet another in the "E family" of editors from IBM) is also
bundled.
── CON ──
The price has gone up. IBM VisualAge C++ is now the second most
expensive of the C++ compilers listed here. Demands enormous amounts
of memory (16Mb of RAM is a working machine for a C++ compilation. The
side of the box recommends 32Mb! VisualBuilder and the C++ compiler
aren't happy side by side on the same box in less than 40Mb!). The
memory resident feature will impact the swapfile heavily on low-memory
machines, and is thus rendered virtually useless for them. Requires a
device driver in CONFIG.SYS for the execution profiler. No
cross-platform compatibility (CSet for AS/400 and PowerPC are "coming",
but are due late 1995). POSIX.1 is poorly and badly supported. There
is no runtime library support for 16-bit development (so device drivers
are out here too). Those used to compilers with command lines
influenced by UNIX (such as all of the others listed here), will find
the compiler command line options counter-intuitive; they certainly
aren't mnemonic at all. Library files now use a proprietary format
rather than the Intel OMF library format used by all of the other
commercial compilers listed here, meaning that they cannot be used with
either other compilers or previous versions of IBM CSet++. Many bugs
in the frozen code for version 3.00 mean that obtaining the 3.01 CSD is
recommended (the new headers supplied with IBM VisualAge C++ 3.00
generate several compiler warnings that weren't in IBM CSet++ 2.xx, for
example, and there are still problems with precompiled headers). The
runtime library DLL is certainly *not* upwardsly compatible with IBM
CSet++ 2.xx, as some function names have changed. There are several
errors in the DirectToSOM C++ facility, such as incorrectly declaring
acessor methods as "virtual", and no facility to automatically call
"XNewClass" in dynamically located DLLs. DTS C++ does not support
Distributed SOM. Combining DTS C++ with the object browser or
precompiled headers causes the compiler to crash.
┌─────────────────┤ EMX C++ 0.9a for Intel OS/2 ├────────────────┐
│ │█
│ [ ] OS/2 Developer's Toolkit (*NOTE*) [ ] IDE (*NOTE*)│█
│ [ ] PM Class libraries [ ] Workframe (*NOTE*)│█
│ [-] Ships on CD-ROM (*NOTE*) [ ] SOM support │█
│ [ ] DirectToSOM C++ │█
│ [ ] Intel 586 FDIV workaround │█
│ │█
│ No FIDONET address. │█
│ Try mattes@azu.informatik.uni-stuttgart.de . │█
│ │█
│ EMX C++ is distributed as "free" software. │█
└────────────────────────────────────────────────────────────────┘█
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
── NOTES ──
EMX C++ is not a commercial compiler, being distributed as "freeware"
under terms similar to those of the Free Software Foundation. It's
"ethos" is completely different to commercial compilers. You have to
hunt for EMX. Most file sites are not always up to date, or carry the
complete distribution. One of the CD-ROMs of the Hobbes OS/2 FTP site
comes with EMX pre-installed (the other does not). Unfortunately,
there is no author-supported site from which EMX can be File Requested
or downloaded. The author only distributes via FTP from
ftp.uni-stuttgart.de. Buying the OS/2 Developers' Toolkit is highly
recommended for PM work, since it includes PM documentation, which EMX
C++ lacks. The lack of an IDE or Workframe support are deliberate
omissions on the part of the author. The EMX ethos is to use the
command line, or the author's port of the emacs text editor.
── PRO ──
Free (it's essentially the GNU compiler "rebadged"). Will develop OS/2
and extended DOS applications from the same source. The compiler
itself is a port of GCC ("EMX" derives from the name of the DOS
extender). Because of its roots, it has exceptional support for
POSIX.1, even including stuff that doesn't actually fit the OS/2 model,
such as fork() and <termios>. Lots of UNIX libraries should be easily
portable to OS/2 using EMX C++, and many have been. Fair optimiser.
Can call 16-bit code. Full source to all libraries is available. Full
source for the compiler itself is available. The run-time library DLL
is (upwardly) compatible between applications written with different
versions of the compiler.
── CON ──
Free (you get what you pay for, including the support). The FSF and
the EMX author's "Copyleft" have some minor impact on commercial code.
Installation of the whole compiler is not a trivial task, since it
comes in lots of little bits and pieces. You are expected to be able
to obtain and install all of the necessary tools which EMX C++ relies
upon (such as TeX and emacs), for which you also have to hunt (they
aren't distributed with it). No 586 support. No support for
generating 16-bit callable code (which rules out device drivers).
Calling 16-bit code requires "hand thunking" using a set of supplied
macros. Development tools are as horrible as the UNIX originals, and
are strictly command-line based. Tools frequently default to UNIX, not
Intel/PC, standards and conventions, especially filename, object
module, executable file, and command-line conventions (working from
OS/2 programming reference books with EMX C++ is a challenge not
recommended to the novice). "Native" EMX programs (i.e. those where
you don't specifically request Intel/PC compatibility in the
compile/link stages) all contain a stub to load the embedded UNIX
translation layer at run-time, which makes application loading
noticably slower. No PM or OS/2 support tools (help compiler, dialogue
editor, message file generator, pack generator, et al.) are supplied.
The supplied OS/2 header files generate spurious compiler warnings for
legal code due to incorrectly defined constants, and use the wrong
definitions (char/unsigned char mismatch) for some types. The DOS
extender supplied (EMX.EXE) doesn't work under OS/2 because it uses
VCPI (another "EMX compatible" DOS extender using DPMI is available,
but it is yet another extra thing not bundled with the compiler that
you have to go hunting for, and you then have to adjust everything to
use it). No printed manuals at all. Some manuals are available in INF
format, but this doesn't include the all-important compiler manuals.
All of the GCC documentation is in TeX format, and not plain ASCII,
requiring that you have TeX (or yet another non-bundled conversion
tool) in order to make it legible. No OS/2 API documentation at all.
» JdeBP « » (c) Copyright 1993-1995 All Rights Reserved. «
» FIDONET 2:440/4.0 JdeBP@donor2.demon.co.uk «