[comp.os.msdos.programmer] Zortech C & C++ summary.8

s64421@zeus.usq.EDU.AU (house ron) (04/19/91)

	SUMMARY OF OPINIONS ABOUT ZORTECH
	=================================

Here at last is the summary of opinions about Zortech C & C++ which I
promised to compile.  Then the dreaded Flu hit me, and caused a delay.

Respondents seemed divided over whether it is a good product or a bad
one.  I even got a response from someone at Zortech.

I have tried to edit out duplicated remarks, leaving the gist of the
messages from everyone.  Apologies to anyone who feels I have garbled
their comments.

*********************************************************************

My impression is that they have a lot to learn about quality. The impression
is that they haven't put enough work into making a professional produkt. The
manuals we got are not very good. Borland beats Zortech easily. The impression
I get from Zortech is that this is Unix style stuff ported to MSDOS (They
seems to expect a lot of the user) while Borland seems to be the PC people
(the documentation was and is good). Borland could very well bury Zortech if
Zortech does not pull their act together real soon now.

*********************************************************************

I have Zortech C++ version 2.12, and I think it is the SIXTH
version of their C++ compiler I have obtained. In my opinion
the compiler is an absolute disgrace - here are some examples

1.  virtual destructors are broken (try deleting a NULL pointer
which has the type of a class with a virtual destructor)

2. virtual base classes are broken

3. many, many other bugs -  for example, try typing in examples
from the ARM starting bottom half of page 203

4. I don't use Windows, but I have been reliably told that Zortech's
floating point doen not work correctly under Windows (only a little
bug!!)

I know C++ compilers are very complex - and so early releases are
bound to have a substantial number of bugs, but I stress I have had
at least SIX versions of their compiler.

In future I shall be using
(A) Borland C++.  The first release called
Turbo C++ had fewer bugs than the current Zortech.
and
(B) Topspeed C++.  This is due out any day now.  Their C compiler
is still, I believe, the only validated (by the BSI) ANSI C compiler
for the PC.  It does more optimisation than Zortech or Borland.
And finally, my personal experience is that the company is as much
concerned about the excellence of their products as Borland and
responds quickly to bug reports.

*********************************************************************
> 
> 2.      It is loaded with bugs.

Has some yes, but so do all new product. Never had a bug hamper my
work though.

I have found the Zortech C++ compiler and tools excellent for writting
good production quality code. I think they have done a great job.

*********************************************************************
	(This is from the response from Zortech. - RH)

'huge' is not supported in the 16 bit version of the compiler and in the 
32 bit version of the compiler it is not required.

Further information for your query (from admittedly biased sources) could
be obtained from the people on the Zortech BBS (206-822-6907 300->2400 Baud,
N,8,1), from the Zortech email list (subscribe via a note to 
ztc-list-request@zortech.com), and from the people who work for Zortech 
(myself included).

Some people probably willing to answer specific questions:

phil@zortech.com     (Debugger questions)
eric@proto.com       (Editor and environment questions)
joe@proto.com        (SCO UNIX version, Flash Graphics questions)
samuel@zortech.com   (ANSI 'C' and 'C++' issues, customer support policy)
support@zortech.com  (Does this work?  What am I doing wrong?  Is this a bug?)
sales@zortech.com    (Priceing, educational discounts, orders, etc)
zortech-bugs@zortech.com (Bug reports)

*********************************************************************

Anyway, if ZTC 2.18 *is* loaded with bugs, it is so in areas where
I don't run into them, like the more esoteric uses of virtual classes
with multiple inheritance and things like that.

I'm using 2.18. The only bugs I have found are rather obscure features
of the ANSI specification (like: the expansion of printf() contains
_iob[] rather than __iob[], and little things like that).

*********************************************************************

I have Zortech C 2.1 obtained about 1 month ago as an upgrade to an oldish
Zorland C (version 2).  Maybe it will matter to you which minor version of the
release I have.. I will check if you need!  I got Microsoft 6.0 at about the
same time... my interests are just (ANSI) C and not C++, and I want to run
in extended DOS.  I have (for the moment) settled on using MSC, NOT because
I think it is great, but because the Phar Lap 286 extender has a lower
try-out price than the Rational Systems one I would have got to go with
Zortech.
The Zortech install procedure and development environment and particularly
manual seem to me to be much much better than Microsoft.  Both compiled
my (fairly cautious ANSI) code with little fuss in ordinary DOS mode & I could
start trying it out limited to 640K.  Zortech's compiler gives me some crashes
when I try to run the protected mode versin of it to compile big modules,
while Microsoft just gives up and says "procedure too bit to optimise".
Zortech provide lots of nice library and language extensions to handle expanded
memory if you are into that.  MSC 6.0 has an in-line assembler in case it
grossly offends you to have to pay for masm when you will at most be writing
10 lines of assembly code - but the MSC in-line assembler is a little bit odd
in places.  I have not done any speed or space comparisons, and not fed
through lots of different programs - the 30000 lines I did put through
compied OK on Zortech and ran as well as I could hope for a program that
expects 1.5 to 2.0 Mbytes.  Zortech have a BBS for submitting electronic
bug-reports, and can also accept bug-reports by e-mail - I fed in one query
& got a response quite cheerfully.  The old Zorlanc C version 2 served me
well as a light-weight cheery C for small utilities etc for several years,
and was great on price/performance ration.

*********************************************************************

Huge model is unsupported.  If you are designing a program from scratch
there are ways to avoid needing Huge model.  To facilitate this,
Zortech provides the __handle pointer type which offers an
exceptionally easy method for mapping expanded memory.  There is also a
package to do direct expanded memory manipulation provided with the
compiler.  Additionally, The Zortech compilers may be used with the
Rational Systems and Phar Lap DOS extenders for very large programs.

There is no problem (to my knowledge) with multidimensional arrays. 

> I have only received a few responses, with the following results:
>    1. Zortech macros are defective; it cannot handle nested macro calls:
>	   FRED(FRED(x))

The following program compiles and executes just fine with Zortech C/C++.

#include <stdio.h>

#define NEXT(c) c + 1
    
main () { printf ("%d", NEXT(NEXT(NEXT(1)))); }

>    2.  It is loaded with bugs.

We primarily use the Zortech, Borland and MicroSoft compilers on PC's
for scientific and real-time applications.  The frequency with which we
run across bugs is about the same for each.  Earlier versions of the
compilers seemed to have more bugs, the later versions seem to have
fewer (MicroSoft C 6.0 [before 6.0a] is an exception to this).

I have my choice of using the latest Borland, MicroSoft, or Zortech
products.  I continue to use the Zortech products for the following
reasons:

    o  Compiler technology.  For the past 1.5 years my PC-based
programs have all been written in C++.  A year and a half ago
Zortech was the only C++ ``compiler'' available so part of the reason I
stay with it is due to familiarity.  However the quality of the code
that the compiler generates is important.  Some time back we did some
informal testing of the Zortech and Borland (TC++ V1.0) products. 
Zortech C++ generally produced better code, and had the quickest
compilation times.

    o  Function Library.  The function library that is supplied with
the compiler is very full-featured.  There is all of the standard
ANSI-C stuff, plus an excellent graphics library (called Flash
Graphics), a package for direct display manipulation in text mode, a
mouse package, EMS support, a package for producing TSRs, and much
more.

    o  The Debugger.  This product is simply excellent.  Everyone that I
have shown it to has been impressed.

    o  Technical Support.  For a while now, Zortech has maintained an
active presence on Internet/Usenet.  They seem to monitor newsgroups
related to their products and are prompt in replying to questions and
reported problems.  Zortech also maintains two mailing lists that I
know of:

    ztc-list@zortech.com
    ztc-bugs@zortech.com

The first list is for general discussion while the second is for bug
reports.  Monthly, all members of these lists are updated with the
latest set of bugs.  Each compiler release comes with a detailed list
of changes.  This willingness to identify and share information about
product problems is exceptional for a compiler company.  It does NOT
mean that Zortech products are ``loaded with bugs'' but rather that the
company is open about advising their customers about the ones that
their products have.  [BTW, if you really want to see compiler BUGS try
a $30,000 Ada compiler].

To sum up, I have been using Zortech C++ for long enough to have
an informed opinion.  I find the technical quality of their products and
documentation to be excellent, and the technical support to be unsurpassed.

*********************************************************************

I have been using the new DOS386 version of Zortech C++ since January, to
develop a major image enhancement program (25000 lines +). Not only is the
compiler excellent, Zortech's support has been unbeatable. They are on the
net and answer questions promptly (usually within a few days). The compiler
itself is not terribly buggy and the few buggs which have surfaced as is 
expected in any new product, were addressed by Zortech immediatly. The
object code produced by the optimizer is some of the best I'vs seen out
of any C compiler for the PC. Once I got used to the interface ( I was a
Turbo C++ user) it became a pleasure to use.

*********************************************************************

If you are used to Zortech's compiler switches, and you try compiling
C++ programs on a UNIX system, for example with GNU's g++, you will
find that everything is very similar. Zortech has tried to make the
differences between UNIX and DOS as small as possible. I haven't enough
experience to compare with other compilers, simply because I started
programming in C++ with Zortech, and I have continued to do so later.

While making things easier for us to jump between UNIX & DOS, Zortech
also tries to keep it possible to compile old Kernighan & Ritchie C
compatible programs. I tried to compile an old version of Micro Emacs,
and after setting a few switches, among them turning off ansi
compatibility, the program was compiled successfully.

I am a student, and I have nothing to do with Zortech, except that I
bought their C++ compiler, developers edition, and I find it worth
the money.

*********************************************************************

Well, that's it, folks.  I also received some bug lists for the
Zortech compilers.  Some of them read pretty bad, but from experience
I know that _ALL_ compilers have horrendous bugs, and a bug list is
a deliberate attempt to collect all the uglies in one place, so I
didn't feel it would be fair to put any of them in here.  (statistically
unsound!)  Much worse in my opinion is Microsoft's reported refusal to
distribute bug lists at all.

I still don't know whether to buy the thing!              :-)

--
Regards,

Ron House.   (s64421@zeus.usq.edu.au)
(By post: Info Tech, U.C.S.Q. Toowoomba. Australia. 4350)