Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesWomb-to-Tomb C++ Development


July 1996 / Reviews / Womb-to-Tomb C++ Development

Borland's new C++ 5.0 Development Suite carries your application from inception to deployment.

Rick Grehan

When we last reviewed C++ compilers (see "Compiling Convenience +," March 96 BYTE), Borland's version 4.5 was fast fading and we decided to wait for 5.0, which was rapidly approaching in the distance. We're glad we did. Borland C++ (BC++) 5.0 is a major release with so many new attachments that we'd be hard-pressed to cover them all.

It comes in two versions. The regular version includes BC++ 5.0, the 16-bit hosted version of BC++ 4.5, Visual Database Tools, and Object Windows Library (OWL) 5.0. The large version is the Deve 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.

HotBYTEs
 - information on products covered or advertised in BYTE


Ratings

Technology      ****       
Implementation  ****       
Performance     ****


KEY

***** Outstanding
 **** Very Good
  *** Good
   ** Fair
    * Poor




Performance of Compiled Code

illustration_link (15 Kbytes)


Borland C++

screen_link (44 Kbytes)

The Development Suite version of BC++ 5.0 is so brimming with bundled products that we now understand why God made CD-ROMs.


Rick Grehan is a senior technical editor for BYTE reviews. You can reach him by sending e-mail to rick_g@bix.com .

Up to the Reviews section contentsGo to previous article: Go to next article: Compiling Just in TimeSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network