New Symantec Tools
|Column Tag:||Development Environments
New Symantec Development Tools
A grand assortment of tools for all developers
By Rich Parker, Modesto, CA
Symantecs New Subscription Plan
Symantec has long been known for producing a wide assortment of development tools. Some of these tools were marketed as individual products and some as collections. THINK C and Symantec C++ come to mind as examples of the two different approaches - where the C++ product included THINK C as well as the C++ environment. Symantec has also offered a Symantec Developers Advantage (SDA) program for a while. This subscription plan has offered developers who want all of the tools the advantage of having everything, including Apple-created code, on a single CD.
Starting with the release of the Symantec C++ for Power Mac (version 8, release 4) update, Symantec is simplifying its product line to include only two products:
Symantec C++ for 68K (version 7.0.5)
Symantec C++ for Power Mac (Version 8, Release 4; includes v7.0.5 for 68K development)
The 68K version of the product comes on floppy disks (about 16 of them!). The Power Mac version is available on CD-ROM only, and includes all of the current development environments, utilities, Apple-developed code, and third-party extras (over 600 megabytes of source code, demonstration applications, and documentation).
Everyone who purchases and registers the Power Mac version from now on will automatically be enrolled in the new Symantec C++ Subscription for Macintosh (formerly called the Symantec Developers Advantage), and will be sent the next two CD-ROM updates of the product free of charge. All existing registered 8.x customers and Symantec Developers Advantage customers have been automatically enrolled in the new subscription service and are being proactively sent Release 4 and Release 5 (when it comes available) free of charge as well.
The existing Symantec C++ for 68K product is priced at $79, and a trade-up from any previous version of the 68K Symantec or any Metrowerks product is only $49.95. For those who are interested in developing for 68K Macs, this is a real bargain.
The price of the Symantec C++ for Power Mac product is $399, and a trade-up from any previous version of the Symantec or Metrowerks products is $149.95 and includes the subscription and two free updates.
So What Do You Get in the 68K C++ Product?
The 68K product includes all of the elements of the previous Symantec C++ version 7.0.4 distribution, including the following components:
THINK Project Manager (TPM) development environment (v7.0.4)
Visual Architect (VA)
THINK Class Library (TCL)
Standard libraries, including ANSI libraries, IOStreams, and the Standard Template Library (STL)
C and C++ compilers, THINK Rez resource compiler, resource copier, and .o Converter
Of course, this means that the original THINK C product is being superseded by this new product, which raises the memory requirements bar somewhat. The TPM has a preferred memory requirement of 5 megabytes, with a minimum requirement of 3.2 megabytes. In addition to this, system temporary memory is used to hold the precompiled headers when compiling. So it is reasonable to expect that one would need to have at least 8 megabytes of RAM in ones system to permit the TPM, debugger, and the program being debugged to coexist in memory during the testing process. One thing Ive found in looking at all of the new development environments, both for the Macintosh and for Windows platforms, is that memory requirements for development tools are steadily rising. We should feel lucky that 32-bit C++ development is even possible on an 8 megabyte Macintosh. On the Windows front, 32-bit development demands at least 16 megabytes of RAM, with 20-24 megabytes preferred.
Increased memory requirements notwithstanding, this product provides a greatly enhanced development capability. The Visual Architect alone is a wonderful tool for creating TCL-based applications. We lost the ability to use the TCL with the latest version of the THINK C product, and I think that loss was significant. Many people have had to step up to C++ for that fact alone. In retrospect, my own feeling is that moving from what has been called a C+ language to full C++ has been good for everyone who has learned and used THINK C and the TCL in the past.
In addition to its built-in editor, the TPM environment has a very useful graphic class browser that shows the class hierarchy of a project, after it has been first compiled, by means of boxes that contain the class name and lines that connect the members of the hierarchy. By clicking on any class name box and holding down the mouse button, a pop-up menu of all of the classs methods is displayed. By choosing one of the method names in the menu, the browser opens the corresponding source file and brings the selected method into view. Double-clicking on any class name box causes the browser to open its associated class description (header) file and display its contents.
The Visual Architect tool (VA) is a superb graphic user interface design tool. And the VA is not only a GUI design tool, but it generates code for a complete application skeleton that can be compiled and run without having to write a single line of code. This is a tremendous facility for creating applications very quickly. Of course, we still have to add the custom code that makes the application unique, but the mere fact that all of the scaffolding for the application is put into place, automatically, cannot be dismissed. It is a major factor in the ability to create complex applications quickly and easily.
The THINK Debugger is an important component in this product, as well. I have never needed to use a low-level debugger, such as TMON or even MacsBug, for my projects. Admittedly, my projects are neither huge nor terribly complex, but they are projects in which debugging is an integral part of the development process. I often use the Data window to see the contents of variables, and I have often wished that the THINK Debugger would offer the stack display that was so useful in the THINK Pascal (Lightspeed) debugger. Of course, the stack display is now part of the Symantec C++ for Power Macintosh Debugger, but thats a story for later in this article. When the environments for 68K and Power Macintosh development are finally merged in a future Symantec release, then we will undoubtedly see this feature in the 68K debugger, or at least thats my hope.
Id also like to comment on the very worthwhile functionality of the THINK Inspector. This module, when launched while a program is being debugged, allows one to look at each of the existing objects created by the application to examine the current state of its instance variables. Being able to do this, in parallel with execution of the program in the debugger, is of great value in many cases.
All in all, the new Symantec C++ for 68K development product is a very worthwhile upgrade.
If the 68K Product is So Good, Whats So Great
About the Symantec C++ for Power Macintosh Product?
The answer to the foregoing question is, simply, the availability of a world of Power Macintosh development tools. I think that it is clear to almost everyone that Apple is planning on moving all of its future product releases onto the Power Macintosh platform. Weve already heard that Apple doesnt plan to release any more 68K-based desktop machines, and weve already seen new Power Macintosh notebook computers hit the retail shelves. Clearly the 6100, 7100, and 8100 machines were a huge success. And fueled by that success, Apple has recently released many new models that rely not only on the original PowerPC 601 chip, but also on the 603 and 604 chips. Let there be no question about it. The Power Macintosh platform is the future basis for all new Macintosh models.
With Apples intentions in mind, lets examine the contents of the Symantec C++ for Power Macintosh (version 8, release 4) product offering. It consists of many different and independent tools and frameworks, so Ill cover them individually in the sections that follow:
Latest Symantec Tools
This folder contains the latest official release of the Symantec C++ for Power Macintosh tools, including the following:
68K Macintosh Development (only), including Symantec C++ for Macintosh (v7.0.5) and THINK Pascal (v4.0.2 and including the THINK Class Library v1.1 and MacApp v2.0 class library for use with THINK Pascal)
Power Macintosh Development (only), including the complete Symantec C++ for Power Macintosh development environment and tools
Power Macintosh and 68K Development, including both the Power Macintosh (SPM) and 68K (TPM) development environments and tools
THINK Reference online Macintosh toolbox, standard library, and TCL reference databases
Goodies folder, which includes AppleScripts for automatically converting CodeWarrior projects for use in the Symantec Project Manager, a compiler toolkit for dropping in other compilers into the environment, AppleEvent and external editor information, technical support goodies (including Universal Headers for Pascal), and Key Binder for assigning custom key commands.
The Symantec C++ for 68K product is the same as the standalone product that was described earlier. All of the tools and features of that product are provided and are useful for 68K development only (although these apps run emulated on a Power Mac). The components in the Symantec C++ for Power Macintosh product are listed as follows:
Symantec Project Manager (SPM) development environment (v8.0.3)
Symantec Debugger (SD)
Visual Architect (VA)
THINK Class Library (TCL)
Standard libraries, including ANSI libraries, IOStreams, and the Standard Template Library (STL)
C and C++ compilers, Power PC assembler, Symantec Rez resource compiler, resource copier, and XCOFF converter
Symantec may have been late in releasing its Power Macintosh development tools, but it is steadily moving ahead with new and innovative solutions for Power Macintosh developers. The Symantec C++ 8.0 product (reviewed in the June 1995 issue of MacTech) served as their introduction of a new development environment, the Symantec Project Manager (SPM). This environment is completely new, having been written from scratch. It provides a user interface not unlike the TPM, but with some significant improvements. The Power Macintosh development environment is available in a FAT version that allows Power Macintosh native code to be developed on a 68K machine; however, in order to debug the code, a Power Macintosh computer will be required.
The SPM includes a new class browser that I find much more useful than the graphic browser in the TPM environment. The new browser offers three panes that display classes, methods, member variables. The source code for a selected method, the class declaration, or the definition of a selected member variable can be displayed in the fourth pane. Classes can be sorted alphabetically or hierarchically; the Classes, Methods, and Variables panes can be stacked vertically with the source pane to the right, or horizontally with the source pane on the bottom. The source pane offers the same syntax highlighting and other features of the main source code editor.
An entirely new debugger is provided for use with the SPM. The new debugger has the ability to show the contents of stack frames, including symbolic names and associated values of all objects and their member variables. The calling arguments of individual functions can be easily determined by examining the display. This new facility is very much like the old THINK Pascal debugger, but is much better and easier to use. An associated Data window provides the ability to enter variables or expressions and have these evaluated to show their results. Expressions can include calls to functions in the source code and the display will show the results of these calls. The Symantec Debugger requires the use of Apples Debug Services background application, which is included on the CD.
Prerelease Symantec Tools
In addition to the Symantec tools described in the previous section, the release 4 CD contains quite a number of unreleased but very useful updates and prerelease tools, including the following:
Version 8.0.4d8 of the Symantec Project Manager (SPM)
Version 1.0.4d2 of the Symantec Debugger
Version 8.1d3 of the Visual Architect
Version 8.1.0d4 of the XCOFF converter for the SPM environment, and version 1.0d2 of the XCOFF converter for the TPM environment
Version 1.0b4 of both the SPM Rez and TPM Rez resource compilers
Version 8.1.0d14 of the SPM C and C++ compilers, the latter of which includes full native (0 runtime overhead) C++ exception handling and full ANSI-standard RTTI (Run-Time Type Identification) support, including dynamic_cast<> syntax
Version 2.0.7 of the THINK Class Library
Apple Computers Mr C and Mr C++ optimizing compilers in the form of drop-in translators for the SPM environment, as well as precompiled headers for Macintosh libraries and the TCL
Version 1.3 of MacMindy, a Dylan byte-code compiler in the form of a drop-in translator for the SPM environment, including Mindy libraries and a shared library for the SPM
Even though the prerelease versions of the new Symantec C and C++ compilers support native exception handling and RTTI, they still dont support explicit templates. Template support is still provided via the use of #pragma directives. The up-side of this is that template classes can be debugged with the Symantec Debugger, just the same as any other classes; but the down-side is the increased complexity of having to use the #pragma directives. Im told that Symantec is working on this problem and that it is primarily a Linker issue that will be resolved in a future release of the product.
Support for Apples Mr C and Mr C++ compilers is an especially important new feature in the current release, as these compilers produce significantly faster executable code (22% on the average) than the leading Macintosh compilers. I found that the compile time for a TCL project was quite long when using the Mr C++ compiler, compared to the Symantec C++ compiler. Symantec admits that these compilers are not optimized for compile speed, but rather they are optimized for highly efficient executable code. Three major Macintosh compilers were used to compile and execute the Nullstone test suite (a set of 5337 tests endorsed by Apple, Symantec, IBM, Microsoft, and Metrowerks) using a Power Macintosh 6100/60 with 24 Mb of RAM, no virtual memory, modern memory manager, and no network connections (AppleTalk disabled). The summary results of the tests are as follows:
Bugs Compiler NS Rate % rate of MrC
31 CodeWarrior 7 1279731 77.6%
1 Symantec C++ for Power Mac 1280119 77.6%
0 Symantec C++ w/ Mr C 1649052 100.0%
As is evident in the foregoing table, the Mr C compiler came out in front, with the Symantec and Metrowerks-compiled code running neck and neck for execution speed.
The MacMindy translator comes with a number of Dylan demonstration programs, all of which can be compiled and executed in the SPM environment, and documentation in text and HTML (hypertext) formats. The MacMindy translator was developed by Carnegie Mellon University and was converted to run as a translator inside the SPM environment. In addition to compiling Dylan code, the SPM editor is fully capable of providing Dylan-style syntax highlighting, including the ability to assign colors and styles to keywords, comments, and other syntax elements. I was able to compile the Modules MacMindy application without difficulty; however, I was only able to execute the compiled application outside the development environment. When attempting to execute it within the environment, one of the Mindy libraries couldnt be found. My guess is that it was already open by the environment and that was the result of the error. This isnt a big worry, mainly because this is prerelease software.
The new release 4 CD contains a large amount of software developed by Apple. Symantec has continually worked closely with Apple to provide tools that support both the MPW and Symantec development environments. The collection of tools in this set includes the following:
Symantec and MPW-compatible versions of the OpenDoc DR3 release, including full source code for the OpenDoc Foundation class library (ODF), as well as SPM project models and pre-built OpenDoc libraries, utilities, and demonstration parts. Full documentation (over 18 megabytes) of the ODF, OpenDoc, and CALib components is provided in Acrobat format (an installer for Acrobat is also included on the CD).
A complete, hard-disk-ready copy of MPW version 3.4b7, including all of the interfaces, libraries, scripts, and tools (including MrC and MrCpp compilers). The product includes support for the 68K Code Fragment Manager, which is also included in this prerelease version of MPW. Full documentation of MPW, including Building Programs in MPW, MPW Command Reference, and MPW 411 help files, is provided in DocServer format.
MacApp version 3.1.4 and version 3.3a4 are both included as hard disk-ready folders. Both versions are compatible with MPW and the SPM, with AppleScript scripts and project models pre-built for using MacApp in the SPM environment.
SourceServer versions 1.0.1 and 3.4b7 are included.
ToolServer versions 1.1.1 and 3.4b7 are included.
MacsBug versions 6.2.2 and 6.5d12 are included, along with Discipline version 2.0.2.
The latest release version (1.0) of the Macintosh Debugger for the Power Macintosh and also prerelease versions of both the Power Macintosh (2.0f1) and 68K (2.0b1) Macintosh Debugger are provided. Both the Power Macintosh and 68K versions come with the appropriate version of Apples Debug Services background application and full documentation in DocServer format.
Version 2.1.3 of ResEdit and its extensions are included.
SPM projects and patches for the Developer release of QuickDraw 3D are included, so that development of applications using this new technology can be accomplished in the SPM environment.
Latest interfaces, libraries, control panels, and extensions are provided for ColorSync, Drag Manager, QuickTime 2.0, Thread Manager 2.1, and QuickDraw GX features.
All in all, there are over 310 megabytes of tools, libraries, and source code in the Apple Software suite. The availability of hard disk-ready versions of MPW, MacApp, OpenDoc, and SPM support for the various frameworks is sufficient reason to purchase this product. I installed OpenDoc and used the SPM ODF project module and the accompanying Prep ODF Part AppleScript to create a complete (skeleton) ODF part within the SPM environment. Be prepared to spend a lot of disk space if you intend to install the OpenDoc, SOM, ODF sources, and QuickDraw GX support files and libraries. Those four folders alone will require over 50 megabytes of disk space. I had created a System and SPM development capability on a 105 megabyte SyQuest cartridge and had only about 40 megabytes to spare when I saw that I also needed to include those files. Instead, I put aliases to the versions contained on the CD into the aliases folder in my SPM folder and was able to get by. I doubt that this would be very workable on a permanent basis. Ive been told that attempting to compile and debug the ODF sources requires 40 megabytes of RAM, but Ive not been able to confirm that.
Third Party Goodies and Utilities
The release 4 CD contains demonstration applications, tools, and utilities from various sources. These are all useful development tools and are provided for your evaluation and use. Some of the tools are shareware (such as the Alpha 6.0b6 editor) and some are demonstration versions of commercial products (such as the BBEdit 3.5 demo editor). Demonstration versions of the NeoAccess cross-platform database, Resorcerer resource editor, Application Vise, CMaster, ScriptGen Pro, QUED, and others are provided.
Conclusions and Symantecs Future Directions
It looks to me like Symantec has pulled out all of the stops in this new CD-ROM release. All of the software, including many of the prerelease components, worked just fine on my 6100/60 machine. There is such a variety of software and documentation on the CD that it is impossible to describe it all to the extent it deserves. If youre interested in OpenDoc, then the documentation alone is overwhelming in its scope and substance. If you plan to develop with both the MPW and SPM environments, then this product offers that capability. If you want to use MacApp instead of the TCL, then that choice is available for both environments too. And of course, if you still own a 68K Macintosh, then the product includes complete C, C++, and Pascal development environments, as well as the ability to create OpenDoc parts using the 68K Code Fragment Manager components.
Symantec intends to ship release 5 around the February 1996 time frame, and release 6 in the late Spring of 1996. Release 7 will be shipped in the Fall of 1996. These future releases are planned to feature reduced memory requirements, integrated 68K support, more comprehensive support for OpenDoc and other hot new Apple technologies, and performance enhancements. Symantec says that we can expect to see full support for all of the great new capabilities that Apples upcoming Copland operating system release will provide. They have been working closely with Apple for several months in preparation for the delivery of new features and support in the Symantec C++ for Power Macintosh product line.
I can find little fault with Symantecs direction. I, like some of my colleagues, wish that the integrated 68K support was available right now, but even so, I have successfully ported TCL-based projects from the 68K TPM to the Power Macintosh SPM environments without a hitch. The very fact that the Visual Architect, the TCL, and other library sources are shared by the two environments helps to ensure that applications built with the two environments will be almost identical.
Note from the Publisher:
Symantec C++ for Power Mac Bound Into This Issue
Symantec felt that the best way for you to understand their product was to play with it. As a result, Symantec asked MacTech to bind in a lite version of the Symantec C++ for Power Macintosh product into this issue of the magazine. Obviously, the lite version does not include many of the items mentioned in the foregoing sections. What is included are the following:
A full-featured time-limited (using the system clock) version of the PowerPC development tools is provided, including the Symantec compilers for C and C++, MrC and MrC++ compilers, resource compilers, drop-in assembler, XCOFF converter, and environment, linker header files, and libraries.
Sources are not provided for the TCL or standard libraries. These are provided in binary form and a shared library version of the TCL will be included.
Demos and samples of Mr C and Mr C++ nullstone performance benchmarks are included.
All of the documentation for all of the Symantec products, including the Table of Contents from the latest CD, is included.
After the enclosed CD was mastered, Symantec discovered a problem with the included Visual Architect. You can get a version which works correctly via the Symantec ftp server and also in diskette form from Symantec Technical Support.
The Visual Architect updater can be found in: ftp://ftp.symantec.com/public/devtool/mac/updaters
Symantec Technical Support can be reached at 541-465-8470.