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

SketchUp 19.1.174 - Create 3D design con...
SketchUp is an easy-to-learn 3D modeling program that enables you to explore the world in 3D. With just a few simple tools, you can create 3D models of houses, sheds, decks, home additions,... Read more
ClamXav 3.0.12 - Virus checker based on...
ClamXav is a popular virus checker for OS X. Time to take control ClamXAV keeps threats at bay and puts you firmly in charge of your Mac’s security. Scan a specific file or your entire hard drive.... Read more
BetterTouchTool 3.151 - Customize multi-...
BetterTouchTool adds many new, fully customizable gestures to the Magic Mouse, Multi-Touch MacBook trackpad, and Magic Trackpad. These gestures are customizable: Magic Mouse: Pinch in / out (zoom)... Read more
FontExplorer X Pro 6.0.9 - Font manageme...
FontExplorer X Pro is optimized for professional use; it's the solution that gives you the power you need to manage all your fonts. Now you can more easily manage, activate and organize your... Read more
Dropbox 77.4.131 - Cloud backup and sync...
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 keeps them up-to-date between systems... Read more
DiskCatalogMaker 7.5.3 - Catalog your di...
DiskCatalogMaker is a simple disk management tool which catalogs disks. Simple, light-weight, and fast Finder-like intuitive look and feel Super-fast search algorithm Can compress catalog data for... Read more
Notion 1.0.7 - A unified workspace for m...
Notion is the unified workspace for modern teams. Notion Features: Integration with Slack Documents Wikis Tasks Note: This application contains in-app and/or external module purchases. Version 1.0... Read more
Microsoft Office 2016 16.16.12 - Popular...
Microsoft Office 2016 - Unmistakably Office, designed for Mac. The new versions of Word, Excel, PowerPoint, Outlook, and OneNote provide the best of both worlds for Mac users - the familiar Office... Read more
Little Snitch 4.4.2 - Alerts you about o...
Little Snitch gives you control over your private outgoing data. Track background activity As soon as your computer connects to the Internet, applications often have permission to send any... Read more
MainStage 3 3.4.3 - Live performance too...
Apple MainStage makes it easy to bring to the stage all the same instruments and effects that you love in your recording. Everything from the Sound Library and Smart Controls you're familiar with... Read more

Latest Forum Discussions

See All

Upcoming visual novel Arranged shines a...
If you’re in the market for a new type of visual novel designed to inform and make you think deeply about its subject matter, then Arranged by Kabuk Games could be exactly what you’re looking for. It’s a wholly unique take on marital traditions in... | Read more »
TEPPEN guide - The three best decks in T...
TEPPEN’s unique take on the collectible card game genre is exciting. It’s just over a week old, but that isn’t stopping lots of folks from speculating about the long-term viability of the game, as well as changes and additions that will happen over... | Read more »
Intergalactic puzzler Silly Memory serve...
Recently released matching puzzler Silly Memory is helping its fans with their intergalactic journeys this month with some very special offers on in-app purchases. In case you missed it, Silly Memory is the debut title of French based indie... | Read more »
TEPPEN guide - Tips and tricks for new p...
TEPPEN is a wild game that nobody asked for, but I’m sure glad it exists. Who would’ve thought that a CCG featuring Capcom characters could be so cool and weird? In case you’re not completely sure what TEPPEN is, make sure to check out our review... | Read more »
Dr. Mario World guide - Other games that...
We now live in a post-Dr. Mario World world, and I gotta say, things don’t feel too different. Nintendo continues to squirt out bad games on phones, causing all but the most stalwart fans of mobile games to question why they even bother... | Read more »
Strategy RPG Brown Dust introduces its b...
Epic turn-based RPG Brown Dust is set to turn 500 days old next week, and to celebrate, Neowiz has just unveiled its biggest and most exciting update yet, offering a host of new rewards, increased gacha rates, and a brand new feature that will... | Read more »
Dr. Mario World is yet another disappoin...
As soon as I booted up Dr. Mario World, I knew I wasn’t going to have fun with it. Nintendo’s record on phones thus far has been pretty spotty, with things trending downward as of late. [Read more] | Read more »
Retro Space Shooter P.3 is now available...
Shoot-em-ups tend to be a dime a dozen on the App Store, but every so often you come across one gem that aims to shake up the genre in a unique way. Developer Devjgame’s P.3 is the latest game seeking to do so this, working as a love letter to the... | Read more »
Void Tyrant guide - Guildins guide
I’ve still been putting a lot of time into Void Tyrant since it officially released last week, and it’s surprising how much stuff there is to uncover in such a simple-looking game. Just toray, I finished spending my Guildins on all available... | Read more »
Tactical RPG Brown Dust celebrates the s...
Neowiz is set to celebrate the summer by launching a 2-month long festival in its smash-hit RPG Brown Dust. The event kicks off today, and it’s divided into 4 parts, each of which will last two weeks. Brown Dust is all about collecting, upgrading,... | Read more »

Price Scanner via MacPrices.net

Clearance 12″ 1.2GHz MacBook on sale for $899...
Focus Camera has clearance 12″ 1.2GHz Space Gray MacBooks available for $899.99 shipped. That’s $400 off Apple’s original MSRP. Focus charges sales tax for NY & NJ residents only. Read more
Get a new 2019 13″ 2.4GHz 4-Core MacBook Pro...
B&H Photo has new 2019 13″ 2.4GHz MacBook Pros on sale for up to $150 off Apple’s MSRP. Overnight shipping is free to many addresses in the US: – 2019 13″ 2.4GHz/256GB 6-Core MacBook Pro Silver... Read more
AirPods with Wireless Charging Case now on sa...
Amazon has extended their Prime Day savings on Apple AirPods by offering AirPods with the Wireless Charging case for $169.99. That’s $30 off Apple’s MSRP, and it’s the cheapest price available for... Read more
New 2019 15″ MacBook Pros on sale for $200 of...
B&H Photo has the new 2019 15″ 6-Core and 8-Core MacBook Pros on sale for $200 off Apple’s MSRP. Overnight shipping is free to many addresses in the US: – 2019 15″ 2.6GHz 6-Core MacBook Pro Space... Read more
Amazon drops prices, now offers clearance 13″...
Amazon has new dropped prices on clearance 13″ 2.3GHz Dual-Core non-Touch Bar MacBook Pros by $200 off Apple’s original MSRP, with prices now available starting at $1099. Shipping is free. Be sure to... Read more
2018 15″ MacBook Pros now on sale for $500 of...
Amazon has dropped prices on select clearance 2018 15″ 6-Core MacBook Pros to $500 off Apple’s original MSRP. Prices now start at $1899 shipped: – 2018 15″ 2.2GHz Touch Bar MacBook Pro Silver: $1899.... Read more
Price drop! Clearance 12″ 1.2GHz Silver MacBo...
Amazon has dropped their price on the recently-discontinued 12″ 1.2GHz Silver MacBook to $849.99 shipped. That’s $450 off Apple’s original MSRP for this model, and it’s the cheapest price available... Read more
Apple’s 21″ 3.0GHz 4K iMac drops to only $936...
Abt Electronics has dropped their price on clearance, previous-generation 21″ 3.0GHz 4K iMacs to only $936 shipped. That’s $363 off Apple’s original MSRP, and it’s the cheapest price we’ve seen so... Read more
Amazon’s Prime Day savings on Apple 11″ iPad...
Amazon has new 2018 Apple 11″ iPad Pros in stock today and on sale for up to $250 off Apple’s MSRP as part of their Prime Day sale (but Prime membership is NOT required for these savings). These are... Read more
Prime Day Apple iPhone deal: $100 off all iPh...
Boost Mobile is offering Apple’s new 2018 iPhone Xr, iPhone Xs, and Xs Max for $100 off MSRP. Their discount reduces the cost of an Xs to $899 for the 64GB models and $999 for the 64GB Xs Max. Price... Read more

Jobs Board

*Apple* IOS Systems Engineer - Randstad (Uni...
Apple IOS Systems Engineer **job details:** + location:Irvine, CA + salary:$45 - $55 per hour + date posted:Tuesday, July 16, 2019 + job type:Temp to Perm + Read more
Business Development Manager, *Apple* Globa...
Business Development Manager, Apple Global Tampa, FL, US Requisition Number:73805 As a Global Apple Business Development Manager at Insight, you proactively Read more
*Apple* Systems Architect/Engineer, Vice Pre...
…its vision to be the world's most trusted financial group. **Summary:** Apple Systems Architect/Engineer with strong knowledge of products and services related to Read more
*Apple* Graders/Inspectors (Seasonal/Hourly/...
…requirements. #COVAentryleveljobs ## Minimum Qualifications Some knowledge of agricultural and/or the apple industry is helpful as well as the ability to comprehend, Read more
Best Buy *Apple* Computing Master - Best Bu...
**710003BR** **Job Title:** Best Buy Apple Computing Master **Job Category:** Store Associates **Location Number:** 000171-Winchester Road-Store **Job Description:** Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.