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

ArticlesSymantec C++ Differences


December 1995 / Reviews / Symantec C++ Differences

Smart distributed compiling and Windows-compliant tools make Symantec C++ 7.2 an enticing alternative for serious developers

Raymond GA Côté

Symantec has shaken itself awake with the release of Symantec C++ 7 for Windows. This new version is a graphically pleasing environment that offers fast compile times and a slew of features that ensure compatibility with key Windows standards.

Symantec C++ has always been the "other" Windows-based C++ compiler behind Microsoft's and Borland's market dominators. On the Macintosh, it went from being the leader to losing hordes of customers to Metrowerks' CodeWarrior, a fall that was due partly to Symantec's lack of PowerPC support but more to a feeling that the company wasn't listening to its customers. With this new C++, plus a PowerPC upgrade (see the sidebar "What's New for the Macintosh"), Symantec is again a contender.

Comfortable Environment

A good way to try out a new compiler is to import code already written in another compiler, but the conversion process can really be a pain. It's easy with the new Symantec C++, as we found out when we tested both the pre-Windows 95 version 7.0 and the 7.2 update, which includes final Win 95 code. The package provides a Microsoft-compatible version of Nmake, as well as a Resource Editor that is compatible with the Microsoft Foundation Classes (or MFC). There's also code for MFC 2.5 and MFC 3.0. The debugging output from Symantec's compilers and linkers is fully compatible with Microsoft formats, which lets you continue to use your favorite debugging software, such as CodeView from Microsoft or Bounds-Checker from NuMega. Moving your files manually into the Integrated Development and Debugging Environment (IDDE) does take some work, but we were able to move 100 project files i n about 10 minutes.

Once you've looked, will you stay? Perhaps. Symantec's IDDE does a nice job of using the tab metaphor to pack lots of information on the screen. By selecting individual tabs, you move among several different workspaces: editor, browser, and debugger ( see the screen ).

The IDDE has all the tools you expect from an up-to-date environment. You can configure the integrated editor for Windows-style control keys and for the standard Brief and Epsilon editors. A built-in version of Basic provides macro processing. The Resource Editor is quick, easy to use, and can exchange resource files with a Visual C++ project. Executables are linked using a new 32-bit multithreaded version of Optlink 6.0 that is lightning fast. A new link option compresses the code within the executable, which, according to Symantec, results in faster load times. This option may be helpful on slower machines, but we saw no improvement on a 66-MHz 486 running Windows 95.

Various compiler opt ions and settings let you build applications for DOS, extended DOS, Windows 3.1, Win32s, Windows NT, and Windows 95. The package also supports Visual Basic extensions, DLLs, static libraries, and OLE custom controls (OCXes).

Behind all these programming tools is the integrated Multiscope 3.0 Debugger (one of the tabbed workspaces). On Pentium machines, this new version of Multiscope provides multithreaded debugging and hardware watchpoints under Windows NT and Windows 95.

The one item delightfully missing from Symantec C++ 7.0 is yet another framework. What a relief. The company is instead focused on fully supporting MFC 2.5 (the 16-bit version) and MFC 3.0 (the 32-bit version).

Agents, Not Wizards

Where Microsoft uses Wizards to help you through tasks, Symantec delivers Express Agents. C++ 7 provides four types of these helpers. The ProjectExpress agent sets up an initial project file and environment configurations for anything from DOS to Windows 95 as well as libr aries. There's also an option for a simple command line-style interface under Windows.

Once you've established your project directories and settings, the ProjectExpress agent can invoke AppExpress, which generates a skeleton application. You simply tell the AppExpress agent if your application requires a simple form or a multiple-document interface. Perhaps it is an OLE Control. After you have made all your selections, you can preview a live version of the application, then go back and adjust your agent's parameters until the application has the right feel. AppExpress finishes by generating the initial source code along with a basic help file.

Anyone who works with the Microsoft Foundation Classes knows the hassles involved in starting a new project. It's not so much the number of classes you have to write -- it's all the typing. The ClassExpress agent helps cut down the amount of labor by letting you define new classes for visual elements and map them to Windows messages. Even so, we're still wai ting for a tool that will let us look at individual screens from the final program and double-click on screen elements to see the coding structure behind them -- a Visual Basic designer for C++.

Our favorite Symantec agent is VBXExpress, which builds C++ wrappers around Visual Basic extensions. VBXExpress extracts the extensions' properties directly from the VBX, so there is nothing to configure manually. You only have to name a new class for the VBX, as well as the header and source file, and press Generate. Presto! You can now talk with the VBX using familiar C++ syntax. We were able to use one of the Visual Basic grid extensions in about 15 minutes the first time we tried it.

Browsing the Source

No C++ developer environment is complete without a class browser. Symantec provides a typical Smalltalk-style browser for viewing and editing source code. A project database maintains class declaration and usage locations for quick retrieval. A background parser that scans sourc e files whenever they change keeps this central database up to date. You continue working while the parsing occurs. We had to wait a minute or two the first time we opened a large new project while all the files were parsed and the database was updated. However, after the initial pass, we noticed only a slight slowdown while parsing individual files. This is a simple yet sophisticated way to ensure your browser is always up to date.

A Contender Again

The maxim that whatever doesn't kill you makes you stronger applies to Symantec, which has a strong new product in C++ 7. The company still has much work to do to convince disgruntled developers that they'll get the support they need. But technologically, Symantec C++ 7 is a serious competitor to the Borland, Microsoft, and Watcom products. Windows developers will like the tightly integrated development environment and special tools such as the VBXExpress agent. Macintosh developers will sigh with relief that they can finally move t heir existing applications based on the Think Class Library to the PowerPC platform.


PRODUCT INFORMATION


Symantec C++ 7.2..........$399

Symantec Corp.
Cupertino, CA
(800) 441-7234
(503) 465-8470
fax: (503) 334-7400

http://www.symantec.com



Access Only a Tab Away

screen_link (70 Kbytes)

The new Integrated Development and Debugging Environment (IDDE) offers tabbed access to several levels while cramming information onto each screen.


Raymond G A Côté is a BYTE consulting editor and vice president of product development for Appropriate Solutions, a software company based in Peterborough, New Hampshire. You can reach him on the Internet at rgacote@apsol.com .

Up to the Reviews section contentsGo to previous article: Replicating Access DatabasesGo to next article: What's New for the MacintoshSearchSend 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