lopment Suite that we reviewed; it adds CodeGuard, PVCS, InstallShield Express, and Java support.
Staying with the Trends
Given the frequency of new compiler releases, trends are easy to recognize. Any organization dealing even remotely with software development is trying to fold Java into its recipe. Unlike Symantec (with its stand-alone Cafe), Borland supports Java development as an add-on that's sown into the C++ 5.0 integrated development environment (IDE).
In fact, working with a Java project in the IDE is identical in process to working with a C++ project. The IDE recognizes a project as Java-related, makes the editor Java-aware with appropriate syn-tax highlighting, and unleashes the Java compiler at build time.
Debugger integration shows a few seams, however. Getting at the Java debugger requires some nonintuitive right mouse-clicks rather than a toolbar selection. On the plus side, the debugger is visual and multipaned, a godsend in comparison to the command-line Java debugger that we've seen elsewhere. Borland's Java AppAccelerator speeds Java code execution by se
lectively compiling methods into native machine code (see the sidebar "Compiling Just in Time").
Inclusion of database development tools is a trend we noticed in the last C++ compiler roundup. BC++ 5.0 now comes with the Visual Database Tools, a group of components (data-access Visual Basic custom controls [VBXes]) that purport to provide all you need to create a database application without writing any code.
You develop controls "visually" with the dialogue editor. You populate a dialogue form with controls and access them via a properties sheet, as you do in Visual Basic. You can get at the controls programmatically via framework classes that Borland provides. Most important, the controls are built atop the COM architecture and support the
IDispatch
interface; this means you can manipulate them through any OLE automation controller.
Version control is important for large, multiprogrammer projects and probably even more so for code reuse. Microsoft Visual C++'s component gallery
will probably acquire aspects of a version-control system (if it hasn't already). The Borland C++
Development Suite
now bundles Intersolv's PVCS version manager and integrates it fairly well into the IDE's project paradigm. You can, for example, check an entire project into the PVCS archives, and PVCS manages the check-ins of the individual files.
There seems to be a movement afoot in the C++ development community to replace file-based editors with browser-based ones. Here, Borland has work to do. Specifically, the Borland product won't let you launch the browser until you've compiled the application (and you need debug information in the application before you can browse). Also, the Borland IDE can't browse a Java program.
Borland has always been good about keeping up with the latest ANSI standards. The company's inclusion of the Standard Template Library as well as support for namespaces is an indication that Borland will continue to be near the forefront in standards sup
port.
New, Not Just Improved
A major release, BC++ 5.0 provides a number of new features that we would not have predicted from past releases. ObjectScripting is the most significant addition to the IDE. Symantec's C++ IDE already sports a scripting language, but Borland's ObjectScripting provides wider control over the development environment.
ObjectScripting sits atop an object-oriented language called cScript, which is executed by the IDE script engine. The script engine understands objects that correspond to major components within the IDE. For example, the Editor object encapsulates properties and methods that let you access and modify edit buffers and other elements of the IDE's editor. This lets you automate the IDE. You can, for example, build a script that you turn loose on a subdirectory, and that script can gather all the source files within that subdirectory into a project for you, saving you the trouble of picking through all the files manually.
The D
evelopment Suite's CodeGuard error detection has capabilities that extend well beyond basic memory-leak detection. For example, it can identify resource errors (e.g., when your program attempts to perform a "Pen" operation on the object of a bit-map handle). CodeGuard has 16- and 32-bit personalities; the appropriate version comes into play depending on the target application. For the most part, the two have identical capabilities, although CodeGuard32 adds such features as support for multithreaded applications.
InstallShield Express, from InstallShield Corp., is yet another bundled package. In "wizard" fashion, it guides you through the process of constructing your installation in interview fashion. Most important--particularly if you develop for Windows 95 -- InstallShield can incorporate an uninstaller in your distribution.
If you've worked with earlier releases of the BC++ IDEs, you'll have no trouble here. BC++ 5.0 retains the same project paradigm as before, as well as the expandable-tree
mechanism for accessing project and environment options. BC++ 5.0 includes two compiler back ends: one from Borland, the other from Intel. The Borland back end yields quicker compilation times, while the Intel back end produces swifter executables.
Performance Testing
We measured the BC++ 5.0 compiler's performance with three different tests, including the BYTEmark benchmarks and the J benchmarks used in our last roundup. We also included a benchmark based on the GNU C++ class library. Called TESTCPP, this benchmark exercises the libraries' string, rational, and integer packages. We ran BC++ 5.0 against Microsoft's Visual C++ 4.0, testing under Windows 95 on a 90-MHz Pentium Dell Dimension XPS90 using both products' 32-bit compilers.
The final scores are an index based on run times for the compiled code (
see the figure
). With its own back end, the Borland compiler did extremely well with the J benchmark test, while Visual C++ 4.0 showed superiority
in the BYTEmark and TESTCPP benchmarks. We suspect that BC++ 5.0 does a better job of global optimization, while Visual C++ 4.0 excels in local optimizations. (The J application, being an interpreter, will flip back and forth between interpreting tasks and computing tasts; the BYTEmark and TESTCPP benchmarks consist of localized routines.)
It took a fix from Borland to produce a noncrashing executable with the Intel back end for the TESTCPP benchmark. The fix involved updating the command-line version of the Intel compiler. We also needed Borland's help to get a noncrashing J executable with the Intel back end. To CodeGuard's credit, it located a number of memory leaks in the J code, which we will be investigating.
A Decent Effort
With this top-notch compiler, Borland will continue to maintain high visibility in the C++ marketplace. The Development Suite is a complete applications development system--complete in that it even aids in the packaging of your deliverable. We cheer
Borland's inclusion of ObjectScripting and look forward to the ObjectScript add-ons. And Borland planned to resolve the problems surrounding the Intel back end by the time you read this.
On the other hand, although we have no data other than our experience with earlier versions, the 5.0 IDE seems more sluggish overall. Confident that Borland will iron out the wrinkles, we give BC++ 5.0
two thumbs up
.
Product Information
Borland C++ 5.0............Development Suite $499.95
...........................Regular Version $349.95
Borland International, Inc.
Scotts Valley, CA
Phone: (800) 645-4559 or (408) 431-1000
Internet:
http://www.borland.com
Circle 1073 on Inquiry Card.