TweetFollow Us on Twitter

Symantec 8
Volume Number:12
Issue Number:7
Column Tag:Programming Tools

Symantec C++ v8 Release 5

A lot more than its Caffeine is eye-opening

By Rich Parker

About Symantec’s New Release

Symantec C++ version 8 release 4 was the beginning of Symantec’s new subscription program for this product. I described it in considerable detail in my article, “New Symantec Development Tools” (MacTech Magazine 11.12 [December 1995] 43-50), and I’m not going to repeat all of that here.

Doubtless you’re interested in what’s new with Symantec C++ and the Symantec Project Manager (SPM), and there’s lots to report on that front. The new SPM has a much smaller footprint. The previous version required about 12MB of RAM to run; the new version contained in this release has a preferred size of 6.5MB. That’s a reduction of almost 50%! In addition, the new version requires less system temporary memory for precompiled headers, and that space is managed much more efficiently.

Another big step forward with the new release of the SPM is that you can develop both 68K and Power Mac applications from the same project file. This is a huge advantage for those of us who had to keep two project files and try to keep them both up to date.

There have been bug fixes and other changes to the Visual Architect and the TCL in this new version. I’m not aware of any new classes, but the existing classes have been made even more robust. One thing that users of Object I/O will appreciate is the inclusion of the “Using Object I/O” document, which goes into a quite a lot of detail about how this feature works and how it can be added easily to your application’s classes. The document is in Acrobat format inside the “Documentation” folder, within the “EIC” folder of the “Symantec C++ for Power Mac” folder.

In addition to the “Latest Symantec Tools” folder’s contents, there are quite a number of Apple software products included in the new release. There is a complete hard-disk-ready copy of MPW v3.4, including all of its compilers and tools, the latest version of MacApp (3.3), ToolServer, SourceServer, Apple debuggers, ResEdit, and a “SOM Objects for Mac OS” folder that contains the shared library, plus Apple’s statement of direction in their development plans. Code, interfaces, and examples for MPW are also included, and there are interfaces and libraries for QuickDraw 3D and drivers and interfaces for the PCI bus. There are a lot of additional Apple components that I haven’t mentioned.

But Wait, There’s More

Release 5 includes Caffeine, a translator plug-in that supports the development of Java Applets with the SPM. You will need to use the Custom Install option to install Caffeine, which also installs Sun Microsystems’ Java compiler and Applet Viewer code, as well as a ton of examples.

Caffeine is a prelude to the announcement of Café for the Macintosh, a stand-alone development environment for Java applets and applications. Symantec delivered Espresso for the Windows platform last December. This, like Caffeine, was a plug-in feature for their v7.21 C++ development environment. Symantec released the stand-alone version of Café for Windows late in March and expects to release Café for the Mac some time soon - perhaps it will have been released as you read this review. [As indeed it was. While Rich, at our urging, was madly laboring to cover Caffeine in timely fashion, Café for Mac burst upon the scene, to be sent free to all Symantec C++ subscribers - thus truly superseding Caffeine. The rapidity of events is proving somewhat overwhelming. Nonetheless, we have not excised Rich’s discussion, as it would have been wrong to rob our readers of its cogency and inherent interest. - man]

At this point, Caffeine relies on version 1.0b1 of Sun’s Java Development Kit (JDK). That kit has some outstanding problems, not the least of which is that audio files aren’t supported. There are also other bugs in Sun’s software. I’m told that Sun intends to release the second beta version of their JDK sometime in April, and that the audio problem, among others, is solved.

Even though Sun’s software is not quite up to par at this point, you can still develop applets that will run quite well with Java-equipped Internet browsers, or with the included Applet Viewer. To give you an idea of a Java applet, Figure 1 illustrates a typical SPM project file window for Java applet development.

Figure 1. SPM project for Java development

As you can see from Figure 1, a Java project includes one or more HTML files and a Java source file. The various HTML files can be used to supply different sets of parameters to the Java applet. To compile the project, choose Bring Up To Date from the Build menu. This causes the SPM to invoke Sun’s Javac compiler to compile the source file (in this case, Graph.java). When the compilation is complete, the compiled classes are stored inside the “Classes” folder of the “MacJDL 1.0b1” folder that was installed when you installed Caffeine. I compiled several of the examples and all of the compiled classes are just lumped together in that one folder. It would have been better if they were separated into individual folders, by project name. To execute the applet, you need either to move all of the classes and the HTML files into the place where your Internet browser expects to see them, or to leave them where they are and choose the Run Applet (example1.html) command from the AppleScript menu. This will cause the Applet Viewer application to be invoked with the “example1.html” file. If you wish to see the results of running any of the other HTML files, then you’ll have to either duplicate and modify the script to refer to “example2.html,” “example3.html,” and so forth, or open the individual HTML files from within the Applet Viewer, once it has been invoked. The result of running the “example1.html” file by choosing the Run Applet script is shown in Figure 2.

Figure 2. Graph layout applet in execution

The static picture in Figure 2 doesn’t do the applet justice. The positions of the various nodes of the graph are set initially to random positions and then, during the applet’s execution, the nodes eventually drift into a steady state, which is the point at which the figure was captured. If you click the Scramble button, then the node-locations are scrambled and the graph again drifts to a (perhaps different) steady state. The Shake button, when clicked, causes the nodes to be shaken up and down to reposition them, and then they gravitate to another steady state. The Stress and Random checkboxes cause the nodes to behave differently, although I’m not quite sure I understand the purpose of these settings. Nevertheless, the Graph Layout is only one of the many examples of dynamic Java applets that were written by Sun and included in Symantec’s Caffeine release.

Figure 3 shows the contents of the “example1.html” file that was used to specify the parameters of the graph to the compiled applet. I arbitrarily chopped the <param> directive into multiple lines for purposes of showing the entire specification in the figure.

Figure 3. Example1.html file’s contents

By this time, you’re probably wondering what the Java source code looks like. I captured a portion of the code from the Graph.java source file, and it is shown in Figure 4.

Figure 4. Portion of graph.java source code

The code shown in Figure 4 is just a sample of one function in the overall file. It shows how Symantec’s built-in editor provides syntax coloring of keywords and character strings in the Java language. You can choose character styles and colors for language keywords, preprocessor directives, comments, string literals, and character constants. These choices are global and apply to these features for every language supported by the SPM.

One of the things that I really hate about Sun’s Java code is the old-style statement formatting. I have campaigned for years against the old “Unix-style” statement formatting, and it seemed as though people were listening. More and more, code printed in magazines has been formatted for readability rather than for saving lines of code that took time to output on the old ASR 33 teletype printers. It really bothers me that Sun is creating a bad example that other Java programmers will tend to blindly follow. It isn’t necessary to put the opening brace on the same line as the if statement, nor is it necessary to save lines by writing ugly code such as } else {. I just hope that programmers reading this review will think twice about the way that they format their own Java code. Please don’t blindly follow Sun’s lead.

That said, and having shown one example of the Graph Layout applet, I thought it would be useful to show the result of running the “example2.html” file, with the Stress checkbox selected. The source program does not need to be recompiled to use a different HTML file as input. Just open the “example2.html” file from within the Applet Viewer application (or from within your Internet browser, if you’ve installed the classes and HTML files where they belong). The result is shown in Figure 5.

Figure 5. Result of running example2.html

By running the example with the Stress checkbox checked, the nodes arrange themselves into a ring. The faint numbers on the lines connecting the nodes seem to be “weights” or “distances” that need to be preserved in this mode. Without the Stress checkbox checked, the nodes might arrange themselves into a number of different configurations. I’ve seen them in a figure-eight pattern.

More About Java

Although the Caffeine application doesn’t support stand-alone applications, there is a lot that can be done with Java applets - as is amply demonstrated by the sophisticated examples. Sun’s JDK includes the entire Java class library, including all of the AWT (Another Windowing Toolkit) classes, net (TCP/IP) classes, components (menubar, menu, container, scrollbar, window, dialog, panel, and so forth), as well as input/output classes, image classes, errors and exceptions, and many others. The Java class libraries are very well developed and seem to be mostly error-free. I’ve used the Windows version of Café to build a stand-alone application that has all of the elements of a standard application, except that it must still be executed with Sun’s Java interpreter. This will undoubtedly be the case for the Mac version of Café when it is released.

The Java language is a kinder, gentler version of C++. There are no pointers in the new language, and applets are prevented from performing I/O on the user’s machine. With the exception of the import of audio or graphic files, Java applets can be safely distributed on the net (at least that’s the intention). Instead of requiring a “server-push” capability to provide dynamic Web pages, you’ll be able to supply a Java applet that is transferred to the user’s machine and executed by the Java-equipped Web browser (the released Mac version of the Netscape browser is still Java-challenged, but beta versions that offer Java support are available for download from Netscape’s Web site). Java applets are also checked before they are executed to ensure that they don’t try to wreak havoc on the user’s machine.

The Windows version of the Netscape browser offers full Java applet execution. If you log on to Symantec’s Café Web page, you’ll see steam rising from the coffee cups that serve as bookends at the head of the page. This is accomplished by a Java applet that is downloaded to your machine automatically when you visit the page.

And Now Back To the Review

Symantec’s SPM editor now includes drag-and-drop editing, proper opening and reading of files created with Unix, DOS, or Macintosh line-endings, and syntax coloring for all of the supported languages, including Java and PowerPC assembler files.

The Debugger has been improved to support deferred generation of debugging information. Applying this feature to files that you seldom debug can result in significant savings of disk space, as well as saving time during compilation.

The Visual Architect has been improved both by eliminating reported bugs and also by streamlining the user interface.

This release contains a set of highly interactive tutorials that guide you through the fundamental steps of using the Symantec development environment. Apple Guide files for four projects (Hello World, MiniEdit, Object Bullseye, and Beeper) are provided. These tutorials are accessible from the Guide menu whenever the Symantec project manager is running. In addition, there is a “Shortcuts & Tips” guide that is also accessible from the Guide menu. It provides useful information when using the Symantec Project Manager. The main page of the aforementioned guide is shown in Figure 6.

As you can see from the guide window in Figure 6, there is information on quite a number of topics. I chose the “Drag and drop” item and got the explanation shown in Figure 7.

The SPM now includes Apple’s MrC and MrC++ translators for optimized compilation. You’ll have to use the Custom Install option and choose the “Additional Drop-in Tools” category for these to be installed. In addition to the MrC and MrC++ translators, this category includes the Caffeine translator and the Sun SDK software, as well as Language Systems’ LSPascal compiler. The new LSPascal compiler is still undergoing development; however, the version that is included in the current release is able to compile quite a number of applications, including the “NIH Image” image-editor demo program that is provided in the release. I understand that others have run into some problems with this version of the LSPascal compiler, so your mileage may differ.

In addition to the LSPascal translator, there is also a MacMindy translator that offers the ability to create Dylan applications for the Mac. Although the applications are interpreted, the MacMindy translator will give you the opportunity to play around with the Dylan language.

Figure 6. Shortcuts & Tips guide

Figure 7. Drag and Drop features

More About 68K and Power Mac Development

The SPM provides a unified environment for PowerPC and 68K application development. A single project can be configured to target both architectures, using named sets of project and translator options. This allows the use of the same source code and the same project file to build your application. You have a choice of building a PowerPC, standard 68K, or CFM (Code Fragment Manager) 68K application, library, or shared library. You can even choose to merge an already built 68K application into a PowerPC application, creating a fat application. The SPM itself is fat, as are the translators, the Visual Architect, and other tools.

The complete THINK Reference™ Viewer and databases are also included in this release. Although the references to the Macintosh toolbox aren’t entirely up to date, THINK Reference is a must-have tool if you’re programming with the Standard ANSI Libraries or the TCL. Apple’s Macintosh Programmer’s Toolbox Assistant doesn’t cover those topics.

Symantec Goodies

Release 5 includes quite a number of additional “goodies” pertaining to the SPM. There is a “Compiler Toolkit” that explains how to host a new compiler within the SPM environment. The kit contains instructions and example projects. There’s also information concerning external editors. If you have a personal editor preference, then you might be able to use it instead of the built-in SPM editor. Both Bare Bones Software’s BBEdit and the Alpha shareware editor work well as external editors for the SPM. I’ve heard that Object Master also works in conjunction with the SPM, although there may be a problem with the SPM recognizing that files have been altered and need to be recompiled when that product is used.

The release also contains a folder full of scripts called “Do for Each Project,” that perform operations such as “Remove Objects” on a set of projects. The Rainmaker Build Script provides an exhaustive log of the system features and memory usage during the build process. If you want to know everything about memory usage during compilation, then this script’s for you.

An “SPM Color Manager” application provides the ability to change the SPM’s default background and normal text colors. It’s a FaceSpan application and comes with an installer and the FaceSpan extension.

There’s source code too. The CMoviePane class offers the ability to show QuickTime movies in a pane. The CColorBackground and CColorBorder classes offer the ability to use color in the background or border of a window or dialog pane. And the CDoubleText class operates like the CIntegerText class, except that it handles text strings that represent “real” numbers. All of the foregoing classes are experimental and are not supported by Symantec, but are provided as extra “goodies” for you to use.

There are many more goodies than I have space to mention. You’ll just have to scour the CD to see the wealth of programs and data that the release has to offer.

Third-Party Goodies

The release also contains a wealth of third-party shareware and demo applications. There are offerings from Bare Bones Software (a demo of the BBEdit v3.5 editor), NeoLogic (full source and demos for the neoAccess cross-platform object-oriented database engine), demo versions of a variety of utilities, including Resorcerer, Script Debugger, Developer VISE, VOODOO, CMaster v2.0.3, Tools Plus v2.1.6, and many others. There are also free versions of ProFont (a font created especially for displaying and printing code) and ShrinkWrap (an application that lets you mount disk images on your desktop, instead of having to install system versions or other software from floppy disks).

The Bottom Line

The Symantec C++ for Power Macintosh product retails for $399. Those of us who received this product after having purchased Symantec C++ v8.0 will see that renewal of the subscription for the next three issues will cost $149.95. CodeWarrior users can also trade up to this product for only $149.95, which is $50 less than renewing their CodeWarrior subscription.

There’s very little not to like about the product. I like the smaller footprint and the increased efficiency of this release. I also like the ability to develop Java applets within the integrated environment. The built-in editor, compilation, and viewing features are quite efficient. I think you’ll like this product too.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

OmniGraffle Pro 7.2.2 - Create diagrams,...
OmniGraffle Pro helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use... Read more
OmniGraffle 7.2.2 - Create diagrams, flo...
OmniGraffle helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use Graffle to... Read more
Spotify 1.0.44.100. - Stream music, crea...
Spotify is a streaming music service that gives you on-demand access to millions of songs. Whether you like driving rock, silky R&B, or grandiose classical music, Spotify's massive catalogue puts... Read more
Microsoft OneNote 15.29 - Free digital n...
OneNote is your very own digital notebook. With OneNote, you can capture that flash of genius, that moment of inspiration, or that list of errands that's too important to forget. Whether you're at... Read more
WALTR 2 2.0.8 - $39.95
WALTR 2 helps you wirelessly drag-and-drop any music, ringtones, videos, PDF, and ePub files onto your iPhone, iPad, or iPod without iTunes. It is the second major version of Softorino's critically-... Read more
Dropbox 16.3.27 - Cloud backup and synch...
Dropbox is an application that creates a special Finder folder that automatically syncs online and between your computers. It allows you to both backup files and keep them up-to-date between systems... Read more
EtreCheck 3.1.5 - For troubleshooting yo...
EtreCheck is an app that displays the important details of your system configuration and allow you to copy that information to the Clipboard. It is meant to be used with Apple Support Communities to... Read more
Carbon Copy Cloner 4.1.12 - Easy-to-use...
Carbon Copy Cloner backups are better than ordinary backups. Suppose the unthinkable happens while you're under deadline to finish a project: your Mac is unresponsive and all you hear is an ominous,... Read more
VueScan 9.5.62 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
SpamSieve 2.9.27 - Robust spam filter fo...
SpamSieve is a robust spam filter for major email clients that uses powerful Bayesian spam filtering. SpamSieve understands what your spam looks like in order to block it all, but also learns what... Read more

Latest Forum Discussions

See All

Track Santa with these three festive app...
Christmas is fast approaching and that means it's time to prepare for Santa's yearly pilgrimage around the globe. Christmas Eve is an exciting time as parents help their kids get ready to welcome Santa. You've got the cookies and milk all planned... | Read more »
Galaxy on Fire 3 and four other fantasti...
Galaxy on Fire 3 - Manticore brings the series back for another round of daring space battles. It's familiar territory for folks who are familiar with the franchise. If you've beaten the game and are looking to broaden your horizons, might we... | Read more »
The best apps for your holiday gift exch...
What's that, you say? You still haven't started your holiday shopping? Don't beat yourself up over it -- a lot of people have been putting it off, too. It's become easier and easier to procrastinate gift shopping thanks to a number of apps that... | Read more »
Toca Hair Salon 3 (Education)
Toca Hair Salon 3 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: | Read more »
Winter comes to Darkwood as Seekers Note...
MyTona, based in the chilly Siberian city of Yakutsk, has brought a little festive fun to its hidden object game Seekers Notes: Hidden Mystery. The Christmas update introduces some new inhabitants to players, and with them a chance to win plenty of... | Read more »
Bully: Anniversary Edition (Games)
Bully: Anniversary Edition 1.03.1 Device: iOS Universal Category: Games Price: $6.99, Version: 1.03.1 (iTunes) Description: *** PLEASE NOTE: This game is officially supported on the following devices: iPhone 5 and newer, iPod Touch... | Read more »
PINE GROVE (Games)
PINE GROVE 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: A pine grove where there are no footsteps of people due to continuous missing cases. The case is still unsolved and nothing has... | Read more »
Niantic teases new Pokémon announcement...
After rumors started swirling yesterday, it turns out there is an official Pokémon GO update on its way. We’ll find out what’s in store for us and our growing Pokémon collections tomorrow during the Starbucks event, but Niantic will be revealing... | Read more »
3 reasons why Nicki Minaj: The Empire is...
Nicki Minaj is as business-savvy as she is musically talented and she’s proved that by launching her own game. Designed by Glu, purveyors of other fine celebrity games like cult favorite Kim Kardashian: Hollywood, Nicki Minaj: The Empire launched... | Read more »
Clash of Clans is getting its own animat...
Riding on its unending wave of fame and success, Clash of Clans is getting an animated web series based on its Clash-A-Rama animated shorts.As opposed to the current shorts' 60 second run time, the new and improved Clash-A-Rama will be comprised of... | Read more »

Price Scanner via MacPrices.net

New 2016 13-inch Touch Bar MacBook Pros on sa...
B&H Photo the new 2016 Apple 13″ 2.9GHz/256GB Touch Bar MacBook Pros on sale for $50 off MSRP, each including free shipping plus NY sales tax only: - 13″ 2.9GHz/256GB Touch Bar MacBook Pro Space... Read more
12-inch 1.2GHz Space Gray Retina MacBook on s...
B&H Photo has dropped their price on the 2016 Apple 12″ 1.2GHz Space Gray Retina MacBook (MLH82LL/A) to $1399 including free shipping plus NY sales tax only. Their price is $200 off MSRP, and it’... Read more
Never Settle for Low Performing Wifi With iOS...
AppYogi Software has announced the release of WiFi Signal Strength Status App 1.0, the company’s new utility developed exclusively for macOS. WiFi Signal Strength Status App features a unique, single... Read more
New 2016 13-inch Touch Bar MacBook Pros in st...
B&H Photo has stock of new 2016 Apple 13″ Touch Bar MacBook Pro models, each including free shipping plus NY sales tax only: - 13″ 2.9GHz/512GB Touch Bar MacBook Pro Space Gray: $1999 - 13″ 2.... Read more
New 2016 15″ Touch Bar MacBook Pros in stock...
B&H Photo has new 2016 Apple 15″ Touch Bar MacBook Pro models in stock today including free shipping plus NY sales tax only: - 15″ 2.7GHz Touch Bar MacBook Pro Space Gray: $2799 - 15″ 2.7GHz... Read more
DietSensor App Targeting Diabetes and Obesity...
DietSensor, Inc., a developer of smart food and nutrition applications designed to fight diabetes and obesity and help improve overall fitness, has announced the launch of its DietSensor app for... Read more
Holiday 2016 13-inch 2.0GHz MacBook Pro sales...
B&H has the non-Touch Bar 13″ MacBook Pros in stock today for $50-$100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.0GHz MacBook Pro Space Gray (MLL42LL/A): $1449 $... Read more
Holiday sale: Apple TVs for $51-$40 off MSRP,...
Best Buy has dropped their price on the 64GB Apple TV to $159.99 including free shipping. That’s $40 off MSRP. 32GB Apple TVs are on sale right now for $98 on Sams Club’s online store. That’s $51 off... Read more
12-inch Retina MacBooks, Apple refurbished, n...
Apple has restocked a full line of Certified Refurbished 2016 12″ Retina MacBooks, now available for $200-$260 off MSRP. Refurbished 2015 models are available starting at $929. Apple will include a... Read more
Holiday sale: 12-inch Retina MacBook for $100...
B&H has 12″ Retina MacBooks on sale for $100 off MSRP as part of their Holiday sale. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1199 $100... Read more

Jobs Board

Integration Technician, *Apple* - Zones, In...
…at Zones and for our customers each day. Position Overview The Apple Integration Technician will be responsible for performing customer specific configuration Read more
*Apple* Brand Ambassador (Macy's) - The...
…(T-ROC), is proud of its unprecedented relationship with our partner and client, APPLE ,in bringing amazing" APPLE ADVOCATES"to "non" Apple store locations. Read more
*Apple* Retail - Multiple Positions- Trumbul...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
US- *Apple* Store Leader Program - Apple (Un...
…Summary Learn and grow as you explore the art of leadership at the Apple Store. You'll master our retail business inside and out through training, hands-on Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.