Jul 93 Editorial
|Column Tag:||The Editor's Page
Interview with Symantecs Gene Wang
By Neil Ticktin, Editor-in-Chief
As youve probably figured out already, this issue is focused on Bedrock. Bedrock is being developed through the joint effort of Apple and Symantec. Recently, at Apples World Wide Developers Conference, I had a chance to sit down with Gene Wang, Symantecs Executive Vice President of Applications and Development Tools and ask a few questions about Bedrock, Symantec and their relationship with Apple.
What is Bedrock?
Bedrock is an object-oriented application framework enabling developers to build a product that targets both Macintosh and Windows machines in a single development effort. It provides a higher level foundation for developers to work on top of. And, it is a second generation framework because it looked at first generation frameworks like MacApp.
Bedrock takes a more modern approach. The architecture is based on layers and components where you can build an application using the component instead of inheriting everything. There are four main layers in Bedrock: Applications framework (top), Graphical User Interface, Operating System, and Foundation. Bedrock is specifically architected to be performance oriented.
The framework is meant for real world solutions. For example, Symantecs Q&A product is built on top of the GUI layer with some use of the frameworks. This kind of modularity is going to allow for growth of the Bedrock foundation without compromising features.
The Bedrock Architecture CD
Symantec has now released the Bedrock Architecture CD. This CD is meant for developers to start familiarizing themselves with the Bedrock architecture. The CD includes header files, sample code and demonstrations (with executables for both Windows and Macintosh). One example shows a QuickTime movie on both platforms. There are no libraries that you can compile with on the CD. For those eligible to receive the CD, it is free of charge.
The CD is shipping today. The first developer release of Bedrock will be by the end of 1993. This will be a fully functional release, but not final code quality. Developers will be able to start building applications, but they wouldnt want to ship a product at that time. The second developer release will be in the first quarter of 1994. At that point, developers could start to ship their product. The final release will be some time in 1994.
What is the future of MacApp now that Apple is working closely with Symantec on Bedrock? Both of Apple and Symantec have stated that Bedrock is the successor to MacApp [and TCL for that matter]. You will want to move to Bedrock when it comes time. Until then, you should continue to use MacApp and continue to learn about object-oriented programming and frameworks.
Will source code be provided with Bedrock as it is with MacApp? Yes, full source code will be provided for everything in Bedrock.
Which compilers and environments will work with Bedrock? Obviously, Bedrock will compile under the new Symantec environments (THINK). Symantec will be supporting all major compilers given that they can support Bedrock technologically (i.e., do they support templates, etc ). At this time, compilers like Microsoft C do not support templates, so they cant be supported.
What about PowerPC, will it be supported? With the recent announcement of an extended relationship with Apple to deliver the next generation development environment for PowerPC, that would make a lot of sense. We should expect to see something here maybe as early as next year.
Training and Macapp Transition
Symantec does not have any type of developer courses, but Apple will be working on Developer University sessions for developers. Of course, MacTech Magazine will also coverBedrock to add additional support in for the framework.
There will not be any fully automated transition tools to go from MacApp (or TCL for that matter) to Bedrock. There will be courses from Developer University. In addition, there will be some utilities to aid the transition and there will be documentation on making the move.
How do I prepare for Bedrock?
Weve spoken about this before in the magazine, but well go over it again. The biggest obstacle to using Bedrock or any other framework is understanding object-oriented programming. The best way to prepare for Bedrock is to learn C++. If you want to work with a framework, the things that you learn while using TCL or MacApp will not go to waste.
How does Bedrock handle Resources?
Specifically, how does it handle Windows resources? Basically, Bedrock will have a resource compiler that will either generate native resources, or it will generate source for a native resource compiler to generate resources. Either way, the end result will be native resources from your Bedrock work.
Its premature to talk about resource editors for Bedrock. Obviously, libraries are an important part to developing the Bedrock framework. If it is possible to develop resource tools without infringing on the class library development efforts, it will probably happen. Symantec definitely will have an effort to build visual tools, but it is premature for them to talk about it now.
The Typical Bedrock App
How big is the typical Bedrock application? Obviously, this is a tough question to answer. The good news is that with Bedrocks layer and component architecture, your application will be as small as possible. What does this mean? It means that your application will only contain the code that it needs. Think of it as smart linking for a framework.
How long does it take to build a Bedrock application? Symantecs experience has been that the design time is 2-3 times longer than without Bedrock. The good news is that the development time and quality assurance cycle both get reduced. One thing that has been consistent in Symantecs message has been the quality of the libraries. Since they are internally using the product extensively, they have a lot of confidence in the classes and the framework. The way they figure it, the more of their classes that you use in your product, the less debugging youll have to do. If theyre right and if you can make good use of the objects, they will have helped the development community to realize a the benefit to object-oriented programming.
Class count and Cross-Platform files
Currently, Bedrock has about 400 classes built in to it. That means that a lot of things are already taken care of for you. One of the benefits to working with a product that the company uses for internal development.
How does Bedrock handle multi-platform files? We all know that the Macintosh file system is different from Windows. For one, Macintosh has real file names, Windows has some cryptic abbreviated format. Bedrock has a file component in the Operating System layer which will inherit functionality handle cross platforms in the native look and feel of the platform.
OLE Support and Shared libraries
For those of you wondering about support for Microsofts Object Linking and Embedding (OLE 2.0), Symantec is planning to support OLE 2.0, but possibly not a ship date. It may happen in a later release of the product.
As far as shared library support, Bedrock will be delivered as a set of Dynamic Link Libraries (DLLs) on Windows. Apple really hasnt stabilized the shared library approach on the Macintosh, but Bedrock will support whatever Apple decides on (remember, Apple is collaborating on this project).
Why should a developer use Bedrock over other products in the industry? According to Gene, Bedrocks strength lies in several areas. First, its layer and component approach allows for a rich framework without the overhead that comes with most products. Second, this product is endorsed by Apple - so its a safe bet for Macintosh developers. Third, it supports unicode to handle multi-language support in a cleaner fashion. Fourth, Bedrock is used extensively internally and therefore is a very solid product. Fifth, when compared with other frameworks, Symantec has made a number of improvements, such as C++ templates, by learning from the first generation frameworks. Theyve provided some standard, tested quality building blocks such as the Booch components. Finally, Symantec is the only tools vendor that has their feet firmly in both the Windows and Macintosh platforms. As a result, Symantec is the company that can most credibly build the bridge between the two platforms.
C++ - Here to stay?
Gene thinks that C++ is not only a formidable force today, but that it will be here for the next decade and maybe beyond. His vision of what development systems is very close to what theyve delivered with Symantec C++ for Macintosh. The one thing that it lacks is something that is currently unattainable - instant compiling and linking. As fast as it is, its not instantaneous. Symantec will be targeting their development tools towards novice and professional programmers.
Gene thinks that there will be continuing evolution in compiler technology, environments and team programming tools, and finally frameworks. Specifically, compilers will help more and be faster. Environments and team programming tools will help developers organize themselves and work collaboratively. Finally, frameworks will have more features and have more classes to help create vertical solutions (vertical widget sets). And, as the market demands it, broader platform support.
New Symantec Products
In addition to Bedrock, Symantec is now shipping three new development tools. There is an upcoming product review on these products, but here are some details for now.
Symantec C++ for Macintosh is the first development environment for the Macintosh with an integrated, native C++ compiler. The company also announced the availability of THINK C 6.0 and Symantec C++ 6.0 for MPW. THINK C is a complete package of tools and libraries for programmers, students and hobbyists. Symantec C++ for MPW is a native C++ compiler for users of Apple's Macintosh Programmer's Workshop (MPW).
Symantec C++ for Macintosh:
This is the fastest C++ development environment available for Macintosh. Symantec C++ for Macintosh gives developers access to all of the benefits of object-oriented programming through a fast, native C++ compiler in a tightly integrated environment. Symantec C++ for Macintosh is based on the THINK environment and includes all of THINK C 6.0.
Fast C++: Symantec C++ for Macintosh is the only development environment available with an integrated native C++ compiler and incremental linker. According to company benchmarks, the compiler is 50 % faster than the Apple MPW CFront implementation. The incremental linker significantly reduces development time by only linking new or modified code. Also supported are the latest C++ features such as templates, multiple inheritance and nested classes.
The environment includes an editor, a source code browser and a C++ source code debugger. An open development environment means that during the development process, programmers can use their favorite tools, such as code editors and resource tools. Symantec C++ for Macintosh is AppleEvent- and AppleScript-aware, and can execute Macintosh MPW scripts from within the Symantec environment.
Automatic Project Management:
The THINK Project Manager is how Symantec C++ for Macintosh keeps track of the relationships between all files and libraries. It tracks all the new or modified code and upon request, recompiles the appropriate files and rebuilds the program. The THINK Project Manager eliminates routine hassles and is one of the unique features that makes the product line so popular with programmers.
Symantec C++ for Macintosh includes Apples SourceServer, which supports team development. SourceServer tracks which programming modules have been checked out, and provides a source code control system that coordinates the efforts of multiple programmers working simultaneously on the same program.
THINK C 6.0
THINK C has long been the best selling Macintosh developer product. With THINK C 6.0, developers can build any kind of Macintosh application, desk accessory, device driver or code resource. A new, open development environment allows developers to use the tools included in THINK C, or a compiler, debugger or editor from another vendor. THINK C also features an improved project manager with increased performance for faster development. An improved debugger enables developers to debug larger pieces of code and, as a result, build superior applications.
Symantec C++ for MPW
For users of Apples MPW, Symantec C++ for MPW delivers a native C++ compiler that, according to company tests, is 50 percent faster than the CFront alternative. It is the same C++ compiler that comes in Symantec C++ for Macintosh, and supports the latest C++ features, including templates, nested classes and multiple inheritance.
Pricing and Upgrades
Symantec C++ 6.0 for Macintosh retails for $499 and cross-grades for THINK C 5.0 users are $149.95. THINK C 6.0 retails for $299 and upgrades for THINK C 5.0 users are $89.95. Symantec C++ 6.0 for MPW retails for $499. For more information call Symantec at 800/441-7234 or 408/252-3570.
Neil Ticktin, Editor-in-Chief