Classic Computer Magazine Archive COMPUTE! ISSUE 152 / MAY 1993 / PAGE 64

Borland C++ 3.1: is it an upgrade for you? (Borland C++ 3.1 and Application Frameworks program-development software) (Software Review) (Column) (Evaluation)
by Tom Campbell

Borland C++ 3.1 & Application Frameworks is a fabulous package, priced (street price, $500) and positioned for the professional developer. I use Borland C++ (BC++) to develop applications in C, C++, and assembler. This is a report from the front that should help you decide whether to upgrade or switch to Borland.

If you've been developing C applications, you'll be pleased to know that the Windows environment now handles all the options-it's not the crippled Turbo C++ for Windows that came with 3.0 but a full BC++ implementation. You can create project files automatically, but they're somewhat limited. There's no longer a transfer menu, and you can't run anything but the C/C++ compilers and assembler from a project. Since I use other program generators, I'm unable to automate my program development completely. Many C programmers won't have this problem, but it didn't make me happy.

One of the most widely publicized additions is a syntax-directed editor, which shows comments, keywords, identifiers, and so on in user-definable text attributes. This isn't a gimmick-it really does make your code easier to follow, especially in the case of mismatched comment braces.

The Windows documentation has been expanded and comes with a short, much-needed reference guide that documents, finally, a number of heretofore mysterious aspects of Windows programming. There's a chapter on the printing codes for the Escape() routine, which is necessary for using a printer from Windows. File formats for bitmaps, icons, the Clipboard, and Windows Metafiles are described. And there are finally "see also" sections in the API docs. If you've been stumbling through Windows programming and know only enough to be frustrated by the lack of cross references in Borland's API manuals, this subtle difference alone may be worth the upgrade.

Lack of context is still the biggest problem in Windows API manuals. Sadly, there are no example programs or even fragments in the API documentation. Save yourself months of heartbreak by purchasing the Waite Group's superb Windows API Bible, which has an example for every message and function call.

Turbo Vision (TV) is a useful development tool that provides a complete set of programming libraries and conventions, much like Windows itself (hence the Application Frameworks moniker). Make no mistake: You can develop topnotch, commercial-quality DOS programs with TV, but you must use it to write your programs from scratch-and expect to spend plenty of time in the BCPPDOS forum on CompuServe. You'll also wind up hunched over printouts of the example programs with the same dedication with which a rabbi studies the Talmud. The libraries are complete but tough to follow. One of TV's advantages is that its high degree of modularity allows you safely to lift whole sections of code out of the sample apps and into yours, but only after you know the ropes. Thankfully, a lot of bugs have been eliminated, but code size is still a problem.

Borland Pascal TV apps are often 100K smaller than their C++ counterparts because the C++ linker can't strip out unused code as efficiently as Pascal's. TLINK is quicker than greased lightning but needs improvement in smart linking and overlay management.

Horrifyingly, Turbo Debugger for Windows is still character based. Although technically a Windows program, it acts like a DOS app and suffers from the resultant graphics mode switching every time you step over a function call. Apart from that egregious flaw, TD remains one of the best debuggers known to humankind, far surpassing Microsoft's CodeView,

Another surprising omission is that you can't create DPMI programs that use true 386 protected mode without buying a third-party DPMI DOS extender, although you can do so with Borland Pascal 7.0. I imagine it's just a matter of scheduling and that BC++ 3.5 or 4.0 or whatever will indeed include the extender.

Turbo Assembler was upgraded a couple of versions ago to create Turbo Pascal and C++ classes; TA, TLINK, and the TLIB librarian are astoundingly fast. They don't seem to have changed since BC++ 3.0, however. Turbo Profiler is still the best profiler around and one of the least expensive, fastest ways to improve your code. TPROF doesn't seem to have changed since 3.0.

Should you upgrade from BC++ 3.0 to 3.1? Yes, if you need proper Windows 3.1 support, the full integrated environment running under Windows, or the incremental but significant improvements in documentation. But if you're expecting improvements or better documentation for OWL, the BIDS class library, or TV, save your money. Likewise for Turbo Assembler, Turbo Profiler, and Turbo Debugger, which are already extraordinarily good products and already pretty well documented.