Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!usc!ucla-cs!rutgers!cunixf.cc.columbia.edu!cs.columbia.edu!kearns From: kearns@cs.columbia.edu (Steve Kearns) Newsgroups: comp.lang.c++ Subject: C++ comparison Message-ID: <1990Aug24.181159.19680@cs.columbia.edu> Date: 24 Aug 90 18:11:59 GMT References: <2119@trlluna.trl.oz> Reply-To: kearns@cs.columbia.edu (Steve Kearns) Followup-To: comp.lang.c++ Organization: Columbia University Department of Computer Science Lines: 179 A COMPARISON OF TURBO C++ (FIRST VERSION), GLOCK C++ 2.0A, ZORTECH C++ 2.1 ================================================================ I have had the opportunity to use turboc++ and Glockc++ extensively; I have been experimenting with Zortech for the last 2 days. Here are my impressions of the products, to help others decide which to get. summary: ============== Turbo c++ is best, except for programs with large c++ files, or programs using Windows 3.0. for Windows programming, zortech 2.1 + codeview is the way to go, but there are glaring problems with this setup. for the best manual on how iostreams works, use GlockC++. Or, if you have to use commonview, you must use Glock. However, I would suggest using Zortech 2.1 + codeview + a package like C++/Views (CNS) instead. (iostreams is the new stream standard for C++ 2.1) details: ============= ********** TURBO c++ ***************** I am confident that the SUBSEQUENT version of Turbo C++ will be the premier C++ development environment. However, the current version has some fatal flaws involving the size of file it can compile and its lack of Windows support. Turbo C++ is the only compiler which does NOT use the rational dos extender technology to access extended memory. They use VROOM (swapping out code, but not data) to minimize the space problems, but I have run into the file size limitation several times with Turbo C++. Zortech and Glock can compile larger files on machines with extended memory. The TC++ integrated environment is even better than that of TC. Basically, everything works quickly, safely, and intuitively. The system works so well you can concentrate on your program instead of the user interface. One of my favorite features is the ability to execute any dos program and capture the output in an editor window; furthermore, the command that executes this program appears in a TC++ menu, and can be assigned a key. The debugger is seamlessly integrated into the environment, and is simple to operate. The compiler has every option you may want. I agree with the poster who said that Zortech C++ is twice as fast as Turbo C++, which is twice as fast as Glock C++. The editor is not emacs compatible, which is bad in my book. It is reconfigurable, but I have yet to try to emulate emacs. Instead, I use epsilon and tcc in normal operation, and epsilon with the integrated environment when debugging. Since turbo c++ remembers the contents, size, and locations of all the windows at the end of an editing session, entering the integrated environment puts you right back where you were when you left. Very nice and very convenient. When you open a file, there is no need to type in a filename; there is a "pick list" of files and directories to choose from. A mouse is fully supported, but I found the key controls quite intuitive (and I am a committed macintoshian!). The only nit to pick about the user interface is that when setting compiler options in a submenu, the menu disappears after changing an option. Better would be to return to the parent menu so that further options can be changed. Turbo C++ comes with a full complement of support programs, such as "make", "tlib", "touch", etc.. The turbo c++ make is the most unix-like make I have seen (compared to microsoft and zortech). Turbo supports iostreams nicely. And Turbo C++ Professional, at $199 I think, is the best deal around by far. ********** Glockenspiel C++ 2.0a ***************** In a word, a dog. The previous version, 1.2e1, works much better than this version. 2.0a often gave up, reporting an error NUMBER 90. This error basically says "something went wrong and I dont know what". Furthermore, the glock compiler calls Microsoft C, and I often got errors reported from Microsoft C. Glock C++ has 2 or 3 compilation phases, plus the microsoft C phase. Errors seem to take place between all phases, at different times, which means you have to search through all sorts of manuals to find the particular problem. Glock does not come with an integrated environment, and it relies on the codeview debugger. ********** Zortech c++ ***************** Zortech C++ 2.1 is a spectacular improvement over version 1.06 (which was so bad that I swore never to use a Zortech product again! Of course, here I am, forced to use it because of its windows compatability. I have been pleasantly surprised.) If Zortech continues to improve it with the same perseverence they have shown so far, they might eventually give Turbo c++ a run for their money. Here are some of the problems I have run into in the short time I have been using Zortech, the worst problems listed first: * the compiler does not support huge pointers, meaning that it is extremely cumbersome (and non-portable) to access data structures larger than 64K bytes. For example, an array of structures, each structure 16 bytes long, would be limited to 4000 entries. I guess I will try making a C++ class to simulate a huge pointer, since the application I am porting requires huge pointers. * The editor that is part of the integrated environment does not support pick lists! This means that when you want to open a file you have to remember the name and type it all in! Get a clue, Zortech, this is the 20th century. * Zortech claims Windows support, but they seem to say that one cannot debug a Windows program using their debuggers. Instead, one has to use Codeview, which is pretty bad. * A chapter and a half of the documention is devoted to ZED, a zortech editor. ZED provides pick lists. But Zed is not provided with the Zortech Developer's edition (in contradiction to the documentation.) * the interface is clunky, not half as intuitive as that of turbo. For example, if I pull down the File menu with alt-f, and then realize that I want to pull down the Window menu, I cannot just hit Alt-W as I could in turbo. Instead I have to use the arrow keys or hit escape and then alt-w. Windows open too small to use, and I have to immediately zoom them. The workbench does not remember my configuration (what files are open, my additions to the "make" comand line, etc..) Opening the same file twice gives two separate copies of the file in memory, instead of returning to the previously edited file. These are all small but annoying things that get in the way of productive use of the integrated environment. * Zortech is commended for providing a lengthy list of the bugs in the product. However, these bugs should be fixed BEFORE adding extra features to the integrated system. It is scary when a company prefers to jazz up an interface before making the basic compiler correct. * The documentation is a pain. Typically I have to look at two manuals and a readme document on disk when I have a question. Of course, if it was a choice between perfect documentation and an upgraded compiler I would prefer the latter. * The documentation has many errors. For example, section 19.2 says "There is NO interactive mode (in Zorlib)", while section 19.2.1 is titled "Using Zorlib with Interactive Prompts". * The compiler does not support as many options as Turbo; for example it is impossible to turn off or on specific annoying warnings. * The "make" command is under documented. They do not tell you that environment variables are automatically defined as macros within the make. * Zortech provides the library source code with Zortech Developer's edition, which is Great! However, the supplied makefile would not execute correctly until I added a path to complex.hpp in the makefile, and changed the command "lib" to "zorlib". On the positive side are these points: * The integrated editor emulates most of the basic emacs commands and has extensive mouse support. * The compiler uses extended memory, and thus should handle quite large input files. * the compiler is quick. * The supplied linker and librarian are largely Microsoft compatible. * The debugger appears quite capable, though I have yet to use it. * The integrated grep and compiler-error browser are reasonable, though Turbo's implementation is easier to use.