home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 14 Text / 14-Text.zip / proscons.zip / proscons.txt < prev    next >
Text File  |  1995-11-29  |  22KB  |  354 lines

  1.  
  2.    The (highly unofficial) FIDONET OS2PROG C++ compiler pros and cons list
  3.    ───────────────────────────────────────────────────────────────────────
  4.  
  5.     ┌───────────────┤ Borland C++ 2.0 for Intel OS/2 ├───────────────┐
  6.     │                                                                │█
  7.     │  [-] OS/2 Developers' Toolkit (*NOTE*) [*] IDE                 │█
  8.     │  [*] PM Class libraries                [ ] Workframe   (*NOTE*)│█
  9.     │  [*] Ships on CD-ROM          (*NOTE*) [-] SOM support         │█
  10.     │  [ ] DirectToSOM C++                                           │█
  11.     │  [ ] Intel 586 FDIV workaround                                 │█
  12.     │                                                                │█
  13.     │ No FIDONET address.  The Internet address has stopped working. │█
  14.     │                                                                │█
  15.     │ Borland International (U.K.) Ltd, Twyford, READING  RG10 8BR   │█
  16.     │ Telephone : +44 1734 321150           Fax : +44 1734 320017    │█
  17.     └────────────────────────────────────────────────────────────────┘█
  18.      ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  19.  
  20.                                ── NOTES ──
  21.  
  22.    WorkFrame support is provided (by BC_WF.DLL, TLINK_WF.DLL, and
  23.    BORLAND.PRF), but it isn't documented at all.  Borland has integrated
  24.    the OS/2 Developer's Toolkit into its own toolset.  However, it is the
  25.    2.0 version of the Toolkit, with some glaring errors in the
  26.    documentation and (more importantly) the header files, that were
  27.    corrected in Toolkit 2.1.  Some tools from the Toolkit, such as NMAKE
  28.    and LINK386, are omitted because Borland's own toolset provides
  29.    equivalents.  Other tools, such as the SOM compiler, are completely
  30.    missing.
  31.  
  32.    Third party tools are now available for Borland C++ and OWL/PM, such as
  33.    Professor OWL from March Software (demo versions widely available).
  34.  
  35.                                 ── PRO ──
  36.  
  37.    Quick development and fast compilation.  Will run on an 8Mb machine.
  38.    Supports 586.  Upward compatibile with Borland C++ for DOS source
  39.    (apart from recent changes to C++) and toolset (which Borland users
  40.    from other platforms will find familiar).  Neat and easy to use IDE,
  41.    that integrates editor, compiler, linker, debugger, and API reference,
  42.    and that allows you to compile and edit at the same time.  Full syntax
  43.    colouring in the editor, and the debugger uses colour.  Good standalone
  44.    PM debugger (Turbo Debugger GX), and standalone text-mode debugger
  45.    (which can both debug PM and text mode apps).  Comes with Borland's own
  46.    very good PM Resource Workshop, including tools to migrate Windows
  47.    resources to PM.  32-bit in-line assembler (BASM) and standalone
  48.    assembler (TASM).  Full source to all libraries available.  Full
  49.    run-time library source available (included in CD version).  C++
  50.    compilation is very fast.  Supports pre-compiled headers.  Borland MAKE
  51.    has the ability to batch up successive calls to the compiler from a
  52.    makefile, reducing overhead, and also automatically tracks header
  53.    dependencies.
  54.  
  55.                                 ── CON ──
  56.  
  57.    IDE uses MDI paradigm, eating screen space, and has trouble with some
  58.    Super VGA display resolutions.  The IDE also has trouble indexing the
  59.    on-line documentation, and calling up the index can cause the user
  60.    interface to go into navel gazing mode for several minutes.  No support
  61.    for writing 16-bit callable code and no 16-bit libraries (which rules
  62.    out device drivers).  Support for calling 16-bit code (thunking) has
  63.    serious bugs in.  The optimiser is mediocre, and you may have to write
  64.    defensively to take its quirks into account.  The code generator has
  65.    some serious flaws (stack probes are not generated).  There are a lot
  66.    of non-standard items in the libraries and headers ("Borlandisms").
  67.    Poor support for POSIX.1 in the libraries.  Resource workshop isn't as
  68.    good as Borland *could* do.  The tools are slightly idiosyncratic (MAKE
  69.    has difficulty with macros that are environment variables).  OWL for PM
  70.    does not support any CUA91 controls (although writing your own is not
  71.    hard).  Poor technical support (bugs are rarely acknowledged, and some
  72.    widely known ones still remain unfixed).
  73.  
  74.  
  75.     ┌──────────────┤ Watcom C++ 10.5 for Intel OS/2 ├────────────────┐
  76.     │                                                                │█
  77.     │  [*] OS/2 Developer's Toolkit          [*] IDE         (*NOTE*)│█
  78.     │  [ ] PM Class libraries                [*] Workframe           │█
  79.     │  [*] Ships on CD-ROM          (*NOTE*) [*] SOM support (*NOTE*)│█
  80.     │  [ ] DirectToSOM C++                                           │█
  81.     │  [*] Intel 586 FDIV workaround                                 │█
  82.     │                                                                │█
  83.     │ FIDONET 1:221/186.0.  All Watcom patches are available from    │█
  84.     │ their FIDONET site.  File Request FILES from them for details. │█
  85.     │ Send mail to "sales".                                          │█
  86.     │                                                                │█
  87.     │ Watcom International Corp, 415 Philip Street, Waterloo,        │█
  88.     │ Ontario  N2L 3X2,  CANADA.                                     │█
  89.     │ Telephone : +1 519 886 3700    Fax : +1 519 747 4971           │█
  90.     └────────────────────────────────────────────────────────────────┘█
  91.      ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  92.  
  93.                                ── NOTES ──
  94.  
  95.    Some parts of the IDE are Windows programs (although the resource tools
  96.    supplied in the OS/2 Developers' Toolkit may be substituted for them).
  97.    The SOMObjects Developers Toolkit version 1.0 is bundled, and version
  98.    2.1 is available from Watcom.
  99.  
  100.                                 ── PRO ──
  101.  
  102.    Highly portable (DOS+Windows, extended DOS, Intel OS/2, Netware).  Able
  103.    to generate applications for multiple platforms from OS/2 with little
  104.    or no source changes.  Able to debug DOS and Windows applications
  105.    running in separate sessions within OS/2.  Has its own IDE similar to
  106.    Workframe, connecting editor, compiler, linker, and on-line help, which
  107.    is not a tightly integrated IDE (the editor used can be configured).
  108.    All documentation is on-line, as are example demo programs for all
  109.    standard library functions.  Supports pre-compiled headers.  Industrial
  110.    strength optimiser, which is reasonably configurable.  Develops for
  111.    both 16 and 32 bit platforms.  Supports 586.  Supports customisable
  112.    function calling conventions (via pragma aux).  Add-on kit available
  113.    from Watcom's FIDONET node for device driver development.  32-bit
  114.    assembler (WASM).  Excellent technical support (Watcom will ship
  115.    patches to major bugs to registered users).
  116.  
  117.                                 ── CON ──
  118.  
  119.    The tools are counterintuitive to those coming from other environments.
  120.    The linker is unusual and idiosyncratic, as it combines DEF file and
  121.    LNK file in one (but with Watcom's own syntax), and can get pretty
  122.    hairy when linking for a different platform to the host environment.
  123.    Printed manuals are extra and will almost double the price of the
  124.    product.  The documentation is badly edited, repetitive, and in cases
  125.    misleading.  The macros and keywords that are available for
  126.    "compatibility" tend to obscure the native features.  At least three of
  127.    the bundled toolkits, for which you pay, aren't of any relevance to
  128.    OS/2 development.  The SOMObjects Developers' Toolkit supplied is only
  129.    for version 1 of SOM, whereas OS/2 WARP requires version 2 (installing
  130.    version 1 SOM.DLL will disable Workplace Shell -- be warned!).  The
  131.    install program is not bright enough to realise when it is downgrading
  132.    your SOM support.  The technical support has been outsourced, and
  133.    anything more than help for installing the program and compiling the
  134.    sample code (which is free of charge) now costs a significant amount.
  135.    The C++ runtime library is not available in DLL form.
  136.  
  137.  
  138.     ┌───┤ MetaWare High C++ 3.32 for Intel OS/2 and PowerPC OS/2 ├───┐
  139.     │                                                                │█
  140.     │  [*] OS/2 Developer's Toolkit          [ ] IDE                 │█
  141.     │  [ ] PM Class libraries                [*] Workframe           │█
  142.     │  [ ] Ships on CD-ROM                   [*] SOM support         │█
  143.     │  [*] DirectToSOM C++ (SOM 2.1 and 3.0, and Distributed SOM)    │█
  144.     │  [*] Intel 586 FDIV workaround                                 │█
  145.     │                                                                │█
  146.     │ No FIDONET address.  Try techsales@metaware.com .              │█
  147.     │                                                                │█
  148.     │ MetaWare Inc., 2161 Delaware Avenue, Santa Cruz CA 95060 USA.  │█
  149.     │ Telephone : +1 408 429 META (6382)                             │█
  150.     │ Fax       : +1 408 429 WARE (9273)                             │█
  151.     └────────────────────────────────────────────────────────────────┘█
  152.      ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  153.  
  154.                                ── NOTES ──
  155.  
  156.    The OS/2 Developers' Toolkit 2.1 that is supplied supports SOM 1.x.
  157.    DirectToSOM C++, however, supports SOM 2.1 and SOM 3.0 natively.  The
  158.    SOM.DLL supplied with High C++ is a later release than the one supplied
  159.    with WARP, but the WARP version may be used as long as SOM 3.0 support
  160.    is not required.
  161.  
  162.                                 ── PRO ──
  163.  
  164.    Highly portable (almost identical compilers are available for AIX,
  165.    DOS+Windows, extended DOS, Intel OS/2, PowerPC OS/2, and UNIX System
  166.    V).  This is the only C++ compiler currently available for PowerPC OS/2
  167.    (see the DevCon CD-ROMs).  Excellent POSIX.1 support (due to UNIX
  168.    influence).  Industrial strength optimiser, with every individual
  169.    optimisation separately configurable.  Supports 586.  Supports
  170.    customisable function calling conventions.  Proposed ISO C++ features
  171.    (namespaces, exception aware classes) not in any other current compiler
  172.    on any platform.  C++ language extensions include iterators, case
  173.    ranges in switch statements, nested functions, pass-by-name.  Supports
  174.    per-thread variable declarations.  Supports developing Workplace Shell
  175.    objects with DTS C++ (all DTS C++ headers for WPS are provided, along
  176.    with a chapter in the DirectToSOM Developers' Guide on WPS
  177.    development).  Ships with the excellent Rogue Wave Tools.h++ class
  178.    libraries (with everything from strings to databases).  Comes with
  179.    example demo programs for all standard library functions.  Excellent
  180.    and detailed manuals.  Excellent technical support (Metaware will ship
  181.    patches to major bugs to registered users).
  182.  
  183.                                 ── CON ──
  184.  
  185.    Terrible text-mode debugger.  No 16-bit support for Intel OS/2
  186.    whatsoever (Pre-thunked versions of VIO16/MOU16/KBD16 are supplied in
  187.    the runtime library, though).  Requires that you have the SOMObjects
  188.    Developers' Toolkit for Interface Repository development work.  Most
  189.    expensive of all of the C++ compilers listed here.
  190.  
  191.  
  192.     ┌────────────┤ IBM VisualAge C++ 3.0 for Intel OS/2 ├────────────┐
  193.     │                                                                │█
  194.     │  [*] OS/2 Developer's Toolkit          [ ] IDE                 │█
  195.     │  [*] PM Class libraries                [*] Workframe           │█
  196.     │  [*] Ships on CD-ROM                   [*] SOM support         │█
  197.     │  [*] DirectToSOM C++ (SOM 2.1 only)                            │█
  198.     │  [ ] Intel 586 FDIV workaround                                 │█
  199.     │                                                                │█
  200.     │ No FIDONET address.  Try vacpp@vnet.ibm.com .                  │█
  201.     │                                                                │█
  202.     │ IBM U.K. Ltd.  Personal Systems Enquiry Centre, PO Box 32,     │█
  203.     │ Alencon Link, Basingstoke RG21 1EJ.                            │█
  204.     │ Telephone : +44 1256 841818   Fax : +44 1256 28912             │█
  205.     └────────────────────────────────────────────────────────────────┘█
  206.      ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  207.  
  208.           ( The previous version was called IBM CSet++ 2.1. )
  209.  
  210.                                ── NOTES ──
  211.  
  212.                                 ── PRO ──
  213.  
  214.    *The* standard for OS/2 development.  An industrial strength optimiser,
  215.    slightly lagging MetaWare and Watcom (which are the ackowledged
  216.    industry leaders).  Supports 586.  Can call 16-bit code from 32-bit
  217.    code and generate 32-bit code that is callable by 16-bit code.
  218.    Excellent PM debugger (ICSDEBUG).  Toolset is easy to learn for those
  219.    upgrading from Microsoft compilers, and is well crafted.  Has the
  220.    ability to keep the compiler executables resident in memory across
  221.    compiles, thereby reducing loading delays for multiple successive
  222.    compiles.  Supports pre-compiled headers.  Good technical support (the
  223.    usual IBM CSD system for updates and bugfixes).  Taking a leaf from
  224.    Borland's book, IBM now integrates the SOMObjects Developers Toolkit
  225.    and the OS/2 Developers' Toolkit into the compiler instead of them
  226.    being separate components.  The on-line help has been improved, with
  227.    additional "How Do I..." manuals giving answers to many frequently
  228.    asked questions.  Debug memory management and custom heaps allow fine
  229.    control of memory usage within an application, including incremental
  230.    dumping of heap usage as an application runs.  ICSDEBUG knows about
  231.    both debug memory management and DirectToSOM C++ objects.  The
  232.    DataBuilder and VisualBuilder tools bundled with the compiler assist in
  233.    the construction of databases and graphical user interfaces to
  234.    applications.  LPEX, a programmable syntax colouring programmers'
  235.    editor (yet another in the "E family" of editors from IBM) is also
  236.    bundled.
  237.  
  238.                                 ── CON ──
  239.  
  240.    The price has gone up.  IBM VisualAge C++ is now the second most
  241.    expensive of the C++ compilers listed here.  Demands enormous amounts
  242.    of memory (16Mb of RAM is a working machine for a C++ compilation.  The
  243.    side of the box recommends 32Mb!  VisualBuilder and the C++ compiler
  244.    aren't happy side by side on the same box in less than 40Mb!).  The
  245.    memory resident feature will impact the swapfile heavily on low-memory
  246.    machines, and is thus rendered virtually useless for them.  Requires a
  247.    device driver in CONFIG.SYS for the execution profiler.  No
  248.    cross-platform compatibility (CSet for AS/400 and PowerPC are "coming",
  249.    but are due late 1995).  POSIX.1 is poorly and badly supported.  There
  250.    is no runtime library support for 16-bit development (so device drivers
  251.    are out here too).  Those used to compilers with command lines
  252.    influenced by UNIX (such as all of the others listed here), will find
  253.    the compiler command line options counter-intuitive; they certainly
  254.    aren't mnemonic at all.  Library files now use a proprietary format
  255.    rather than the Intel OMF library format used by all of the other
  256.    commercial compilers listed here, meaning that they cannot be used with
  257.    either other compilers or previous versions of IBM CSet++.  Many bugs
  258.    in the frozen code for version 3.00 mean that obtaining the 3.01 CSD is
  259.    recommended (the new headers supplied with IBM VisualAge C++ 3.00
  260.    generate several compiler warnings that weren't in IBM CSet++ 2.xx, for
  261.    example, and there are still problems with precompiled headers).  The
  262.    runtime library DLL is certainly *not* upwardsly compatible with IBM
  263.    CSet++ 2.xx, as some function names have changed.  There are several
  264.    errors in the DirectToSOM C++ facility, such as incorrectly declaring
  265.    acessor methods as "virtual", and no facility to automatically call
  266.    "XNewClass" in dynamically located DLLs. DTS C++ does not support
  267.    Distributed SOM.  Combining DTS C++ with the object browser or
  268.    precompiled headers causes the compiler to crash.
  269.  
  270.  
  271.     ┌─────────────────┤ EMX C++ 0.9a for Intel OS/2 ├────────────────┐
  272.     │                                                                │█
  273.     │  [ ] OS/2 Developer's Toolkit (*NOTE*) [ ] IDE         (*NOTE*)│█
  274.     │  [ ] PM Class libraries                [ ] Workframe   (*NOTE*)│█
  275.     │  [-] Ships on CD-ROM          (*NOTE*) [ ] SOM support         │█
  276.     │  [ ] DirectToSOM C++                                           │█
  277.     │  [ ] Intel 586 FDIV workaround                                 │█
  278.     │                                                                │█
  279.     │ No FIDONET address.                                            │█
  280.     │ Try mattes@azu.informatik.uni-stuttgart.de .                   │█
  281.     │                                                                │█
  282.     │ EMX C++ is distributed as "free" software.                     │█
  283.     └────────────────────────────────────────────────────────────────┘█
  284.      ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  285.  
  286.                                ── NOTES ──
  287.  
  288.    EMX C++ is not a commercial compiler, being distributed as "freeware"
  289.    under terms similar to those of the Free Software Foundation.  It's
  290.    "ethos" is completely different to commercial compilers.  You have to
  291.    hunt for EMX.  Most file sites are not always up to date, or carry the
  292.    complete distribution.  One of the CD-ROMs of the Hobbes OS/2 FTP site
  293.    comes with EMX pre-installed (the other does not).  Unfortunately,
  294.    there is no author-supported site from which EMX can be File Requested
  295.    or downloaded.  The author only distributes via FTP from
  296.    ftp.uni-stuttgart.de.  Buying the OS/2 Developers' Toolkit is highly
  297.    recommended for PM work, since it includes PM documentation, which EMX
  298.    C++ lacks.  The lack of an IDE or Workframe support are deliberate
  299.    omissions on the part of the author.  The EMX ethos is to use the
  300.    command line, or the author's port of the emacs text editor.
  301.  
  302.                                 ── PRO ──
  303.  
  304.    Free (it's essentially the GNU compiler "rebadged").  Will develop OS/2
  305.    and extended DOS applications from the same source.  The compiler
  306.    itself is a port of GCC ("EMX" derives from the name of the DOS
  307.    extender).  Because of its roots, it has exceptional support for
  308.    POSIX.1, even including stuff that doesn't actually fit the OS/2 model,
  309.    such as fork() and <termios>.  Lots of UNIX libraries should be easily
  310.    portable to OS/2 using EMX C++, and many have been.  Fair optimiser.
  311.    Can call 16-bit code.  Full source to all libraries is available.  Full
  312.    source for the compiler itself is available.  The run-time library DLL
  313.    is (upwardly) compatible between applications written with different
  314.    versions of the compiler.
  315.  
  316.                                 ── CON ──
  317.  
  318.    Free (you get what you pay for, including the support).  The FSF and
  319.    the EMX author's "Copyleft" have some minor impact on commercial code.
  320.    Installation of the whole compiler is not a trivial task, since it
  321.    comes in lots of little bits and pieces.  You are expected to be able
  322.    to obtain and install all of the necessary tools which EMX C++ relies
  323.    upon (such as TeX and emacs), for which you also have to hunt (they
  324.    aren't distributed with it).  No 586 support.  No support for
  325.    generating 16-bit callable code (which rules out device drivers).
  326.    Calling 16-bit code requires "hand thunking" using a set of supplied
  327.    macros.  Development tools are as horrible as the UNIX originals, and
  328.    are strictly command-line based.  Tools frequently default to UNIX, not
  329.    Intel/PC, standards and conventions, especially filename, object
  330.    module, executable file, and command-line conventions (working from
  331.    OS/2 programming reference books with EMX C++ is a challenge not
  332.    recommended to the novice).  "Native" EMX programs (i.e. those where
  333.    you don't specifically request Intel/PC compatibility in the
  334.    compile/link stages) all contain a stub to load the embedded UNIX
  335.    translation layer at run-time, which makes application loading
  336.    noticably slower.  No PM or OS/2 support tools (help compiler, dialogue
  337.    editor, message file generator, pack generator, et al.) are supplied.
  338.    The supplied OS/2 header files generate spurious compiler warnings for
  339.    legal code due to incorrectly defined constants, and use the wrong
  340.    definitions (char/unsigned char mismatch) for some types.  The DOS
  341.    extender supplied (EMX.EXE) doesn't work under OS/2 because it uses
  342.    VCPI (another "EMX compatible" DOS extender using DPMI is available,
  343.    but it is yet another extra thing not bundled with the compiler that
  344.    you have to go hunting for, and you then have to adjust everything to
  345.    use it).  No printed manuals at all.  Some manuals are available in INF
  346.    format, but this doesn't include the all-important compiler manuals.
  347.    All of the GCC documentation is in TeX format, and not plain ASCII,
  348.    requiring that you have TeX (or yet another non-bundled conversion
  349.    tool) in order to make it legible.  No OS/2 API documentation at all.
  350.  
  351.  
  352.    » JdeBP «          » (c) Copyright 1993-1995 All Rights Reserved. «
  353.    » FIDONET 2:440/4.0                      JdeBP@donor2.demon.co.uk «
  354.