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)