Jul 93 Editorial
Volume Number: 9
Issue Number: 7
Column Tag: The Editor's Page
Interview with Symantec’s Gene Wangö
By Neil Ticktin, Editor-in-Chief
As you’ve probably figured out already, this issue is focused on Bedrock. Bedrock
is being developed through the joint effort of Apple and Symantec. Recently, at Apple’s
World Wide Developers Conference, I had a chance to sit down with Gene Wang,
Symantec’s 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, Symantec’s 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.
Bedrock schedule
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 wouldn’t 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.
MacApp’s Future?
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.
Bedrock Source?
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?
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 can’t 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?
We’ve spoken about this before in the magazine, but we’ll 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.
It’s 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 Bedrock’s 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? Symantec’s 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 Symantec’s 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 you’ll have to do. If they’re 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 Microsoft’s 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 hasn’t stabilized the shared library
approach on the Macintosh, but Bedrock will support whatever Apple decides on
(remember, Apple is collaborating on this project).
Why Bedrock?
Why should a developer use Bedrock over other products in the industry?
According to Gene, Bedrock’s strength lies in several areas. First, it’s 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 it’s 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. They’ve 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 they’ve 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, it’s 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.
Open Environment:
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.
Team Programming:
Symantec C++ for Macintosh includes Apple’s 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 Apple’s 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