Mac Development Tools Get With the Program
By Bruce Schneier
A computer platform is only as good as the software developed to run on it. To create good software, programmers need flexible development tools that take advantage of evolving hardware and operating systems.
Apple's interests lie in keeping development tools current so programmers will continue to develop for its Mac, Newton and PowerPC platforms. It has often received criticism from developers for delays and outdated tools.
Mac tools are keeping pace with those on other platforms with help from companies, such as Symantec Corp., that are releasing new languages, environments and class libraries for in-house developers.
Apple committed to Pascal when the Mac was introduced and declared it the language of choice on the machine. Use of Pascal has declined considerably because of the popularity of powerful cross-platform object-oriented languages such as C++ and Smalltalk.
"Pascal, Object Pascal, LISP, C and C++ are all fine languages, but it comes down to support," said Neil Ticktin, editor in chief of MacTech Magazine, a programming journal based in Los Angeles. "If you walk into a bookstore, all the titles are about C and C++. The tools are going to reflect the same thing."
The leading-edge development language today is Symantec's C++ 6.0 for the Macintosh, the first environment for the Macintosh with an integrated, native C++ compiler. There are two versions of C++, one for use within Apple's Macintosh Programmer's Workshop environment and the other for use within Symantec's Think environment. According to Randy Hill, software engineer at Claris Corp. of Santa Clara, Calif., "the three most important things about C++ is that it's fast, open and native C++."
But not everyone is equally impressed. "C++ is, by any account, a horrible language," said Howard Oakley, software developer for EHN & DIJ Oakley on the Isle of Wight, United Kingdom. "Most of the C++ coders I know admit that they hate the language and would prefer another but appear stuck because of commercial demand."
Most programmers still prefer writing in C. "[Symantec's Think] C is much easier to learn than C++," said David Shayer, lead programmer at Sentient Software of San Carlos, Calif., developer of Fifth Generation Systems Inc.'s Public Utilities. "It won't do everything for you, but it does certain things very well."
There are other versions of C, such as Mainstay's new VIP-C, an integrated C compiler and visual, interactive application development system. VIP-C ships with a royalty-free runtime module.
Apple's Macintosh Common LISP, distributed through APDA, also has its proponents. "It's currently the best object-oriented development system on the Mac," said Michael Hauser, programmer for Woodwind Software of San Francisco.
Others prefer Smalltalk, an object-oriented cross-platform language developed at Xerox PARC (Palo Alto Research Center) in California. Both ParcPlace Systems Inc. and Quasar Knowledge Systems Inc. market implementations of this language.
Prograph by Prograph International Inc. is an object-oriented visual programming language for the Mac that will soon be available for Windows, Unix and eventually PowerPC.
Novell Inc., which recently acquired Serius Corp., will be releasing new versions of Serius Developer and Serius Programmer as a new product called Appware later this year. The product will be a cross-platform object-oriented application builder available in Mac and Windows versions. Pricing has not been set.
C and Pascal programmers have two choices of environments: Apple's MPW or Symantec's Think. The choice usually centers on the size of the programming project.
"Commercial software is done on MPW because you cannot manage a large project with Symantec," said Adrian Ruigrok, consultant developer for Ruigrok Innovations in Vancouver, British Columbia. "Most programmers use Symantec because most programmers are not big commercial shops, and for small projects [the Symantec environment] is much faster."
MacTech's Ticktin said, "MPW has lots of problems. It's real slow, and there's no good tech support. People use it because of group programming, customizability, scripting and raw power."
The future of MPW is in doubt. In May Apple announced that it would continue to support MPW tools by issuing bug fixes and maintenance releases, but it will not add new features or functionality beyond those in Essential Tools and Objects Release 12. Instead it said it would focus efforts working with Symantec to develop Bedrock, a new environment for cross-platform development.
This was disappointing but not surprising to many developers. "I'm used to Apple saying they'll support something and then dumping it, but it is still annoying," said Sentient Software's Shayer.
G. Gordon Apple, vice president of engineering at Advanced Communications Engineering Inc. of Redondo Beach, Calif. said: "Replacing MPW is great - if they replace it with something better. If they abandon MPW and don't follow through with a replacement, then developers will be left high and dry."
According to Symantec's Levine, "Rainbow (the code name for Symantec's own PowerPC development environment) will take the best features of Symantec's C++ environment for the Macintosh and combine it with the power of MPW."
Some programmers said they feel Rainbow is too far into the future to merit serious consideration. "This new environment is two to three years away. If I'm not going to have the tool within nine months, I can't care about it," said Shayer.
MacApp is Apple's class library and application framework. Think Class Library is a class library distributed with Think C and Symantec C++ 6.0 for Macintosh. "MacApp can knock 50 percent to 75 percent off the development time of the project, if you know it," said Ruigrok. "Otherwise your time in learning MacApp will offset your savings." Experienced MacApp programmers estimate that it takes at least a year to understand the class library well enough to use it efficiently.
MacApp reflects Apple's migration from Pascal to C++. Apple wrote MacApp versions 1.x and 2.x in Pascal but converted it to C++ for Version 3.0. When Apple switched to C++, it was criticized for not providing tools to help from MacApp 2.x to the new version.
Programs such as Sierra Software Innovation Inc.'s P2C help programmers convert Pascal projects to C and C++.
Prograph CPX, a professional development environment aimed at corporate application building, is scheduled to ship next week, according to Prograph. It supports multifile projects and includes a class library and extensible object editors. Prograph said CPX will be comparable in functionality to TCL and MacApp.
Another, less well-known applications framework and development environment is Component Software Corp.'s Component Workshop 1.1, which is designed primarily for client-server applications. "I use it because it's a very nice development environment and will eventually be on Windows," said Spec Bowers, president of Bowers Development Corp. of Concord, Mass. Component said it will release a Windows version in early 1994.
Bedrock: Future Framework
Apple and Symantec are betting on Bedrock as the new cross-platform tool for the Mac, Windows and, eventually, Unix.
Symantec made a Bedrock Architecture CD available in May, and a confidential prerelease version of Bedrock has already been distributed to some developers. According to one developer, who asked not to be named, Bedrock is a "rich framework that includes over 400 classes of objects."
Symantec is already using Bedrock as an internal development tool. It expects first seeding at the end of this year and to ship a final version by next summer.
"Bedrock won't be perfect, but the fact that it is carrying the experience of MacApp and other frameworks makes it a hopeful future product," said Jesse Feiler, software director at the Philmont Software Mill of Philmont, N.Y.
Howard Shere, president of Green Dragon Creations Inc. of Lake in the Hills, Ill., said he worries whether the new class libraries will support special Mac features. "The class libraries have to keep up with operating system developments. Currently there is no MacApp support for QuickTime or AOCE (Apple Open Collaboration Environment)."
Others are in no hurry to port code to the first version of Bedrock. "I've learned that if I try to use Bedrock 1.0, I'll likely spend more time debugging it than my own code," said Michael Peirce, president of Peirce Software of San Jose, Calif. "I'll wait until at least six months after Bedrock ships before I'll go anywhere near it."
Schneier.com is a personal website. Opinions expressed are not necessarily those of Co3 Systems, Inc.