Apr 97 Factory Floor
Volume Number: 13
Issue Number: 4
Column Tag: From The Factory Floor
Avie Tevanian, Apple's New OSMeister
By Dave Mark, ©1997 by Metrowerks, Inc., all rights reserved.
This month's Factory Floor interview is with Avie Tevanian, Vice President of
Engineering at NeXT, Inc., and recently appointed OSMeister at Apple. Avie is charged
with bringing NeXT's OS technologies together with Apple's and producing Apple's next
OS, code-named Rhapsody.
Dave: What will become of the existing Mac Toolbox? Will the investment
developers are making in mastering the existing Toolbox be devalued as Rhapsody kicks
in? Will Mac apps that run under today's System software continue to run under
Rhapsody? If so, will this solution be a compatibility box like MAE?
Avie: Keep in mind that the System 7 based MacOS is going to be supported for a
long time and that developers can keep their investment in this architecture and port
to Rhapsody at their own pace. Many of the existing toolbox resources are being ported
to Rhapsody.
Additionally, most applications that run under System 7 today will run on
Rhapsody via the "blue box" which is not an emulation environment, rather it provides
native access for System 7 apps at great speeds.
Dave: What can you tell us about the overall Rhapsody architecture? Will it be
the OpenStep architecture with some modifications? Will any of the Macintosh
architecture survive? Will resources (a la ResEdit) be part of Rhapsody?
Avie: Many aspects of the existing Macintosh architecture will exist in
Rhapsody such as QTML (The QuickTime Media Layer). The "yellow box" included in
the attached picture represents the new APIs based on OPENSTEP. These APIs will
allow developers to build better applications faster. These apps will enjoy new
features such as multitasking, multithreading, protected memory, etc. We plan on
making these APIs public as soon as possible for developers to become familiar with
Rhapsody's capabilities.
Dave: What will be done to make the new architecture thread-friendly?
Avie: The CoreOS has full support for threads, allowing multiple threads of
execution to run in parallel on multiprocessor systems. Additionally, there is full
support for thread synchronization and communication.
We've worked with multi-threaded programs for a long time. Sometimes they can
be challenging to get working correctly. After all, there are a lot of synchronization
issues to worry about. However, the multi-threaded model often leads to significant
simplification of applications with partitionable functionality yet retains a high
degree of state (memory) sharing.
Dave: What can you tell us about the Rhapsody kernel? Will NewOS be based on
Mach? The Copland Kernel? A combination of both?
Avie: Fortunately Apple now has the option of incorporating a variety of new
capabilities in their "core os" based on a number of kernel choices. We have not yet
announced what the primary source base will be. What's important is the fact that it
will support true multitasking, protected memory, and SMP. In anycase, I see us
drawing on many of the code and ideas from many sources. "[Just as we went to press
Apple announced their plans to use a Mach kernel, but not which version of Mach.
-Eric]
Dave: What will the Rhapsody user interface look like? Will it resemble the
existing NeXT interface? For example, will the menu bar be the NeXT menu list or the
more familiar Mac menu bar?
Avie: Our goal for the UI is to have it maintain the true spirit of the Macintosh
while also making it become much more powerful. We'll draw on some of the best
aspects of the NEXTSTEP UI and the existing Macintosh UI and deliver a world-class
solution.
Dave: Will Objective-C become the standard language for future Mac
development? Will there be any role for languages like C, C++, and Pascal? How will
non-Objective-C languages work with Rhapsody? Will there be a set of APIs for
languages other than Objective-C?
Avie: Metroworks has committed to providing Rhapsody development tools in a
variety of languages. In addition, we have committed to start supporting Java based
APIs within Rhapsody and expect that these APIs will become much more prevalent
over time.
Finally, the Objective-C runtime is a simple ANSI C callable set of api's. It can be
called directly from any language. We've found that many developers prefer to
program in Objective-C once they've learned it - and learning it is not hard at all.
However, we will not force developers to use Objective-C.
Dave: The newsgroups are saying that the performance of C and stack-based
C++ is much greater (in terms of function dispatch speeds, for example) than
Objective-C. What's your experience in this regard?
Avie: Rhapsody gives developers the option of also writing straight C and C++
code. Objective-C offers dynamic runtime binding giving developers capabilities that
aren't possible in C or C++. While there is some overhead to dynamic binding,
developers have the choice to statically or dynamically bind their objects in the
system. We have had good experience building large systems using the dynamic
features of Objective-C (all of NEXTSTEP uses it!). We don't see performance as being
a problem at all.
Dave: Again from the newsgroups, there is concern that Display Postscript
running on a PC offers some performance concerns. For example, window dragging is
perceptibly slower than under NT or Win95, even on a 200Mhz Pentium. Will Display
Postscript become part of the new OS? If not, what imaging model will be used?
Avie: Our intent is to use Display Postscript for the imaging model. Users will
be impressed with the speed of window operations as well as the flexibility for output
devices. In addition, other APIs will be provided for performing fast, direct to screen
operations as would be used in multimedia, games, etc.
Dave: What is the plan for Java integration with Rhapsody? With Objective-C?
Avie: Apple is committed to Java and plans on adding Java APIs to Rhapsody.
NeXT has already integrated Java into WebObjects such that developers can write their
entire program in Java. Fortunately, the Java design is very close to the Objective-C
design, with the primary difference being the syntax. In fact, Java was explicited
designed with Objective-C-like functionality in mind. Java is a great match for our
Objective-C technology, and you'll see us doing lots of interesting things with Java in
general.
Dave: Is SOM officially out of the picture for Objective-C? Is there an
alternative in mind?
Avie: We haven't looked at this in detail but it seems as though it would be
technically feasible for SOM to interoperate with Objective-C.
Dave: Assuming that developers will need to retool and retrain to develop for
NewOS, what can you say convince them to make this investment, rather than making
the less risky switch over to Windows?
Avie: Rhapsody will allow developers to build new "best of breed" applications.
They can focus on adding their own value to their apps rather than spending a lot of
time, money and energy trying to make their apps work in Windows.
Further, it is false to assume that a "switch over to Windows" is less risky. In
truth, competition in the Windows space is very difficult with shelf space given only
to the largest developers with development budgets of tens of millions of dollars. To get
your product on Windows you first have to compromise on the features, then you have
to fight it out in the market (probably against Microsoft). Developers should be able to
build a very nice business off their Rhapsody-based applications!
Avie Tevanian, Vice President of Engineering, is responsible for managing NeXT's
industry renowned engineering department. Tevanian started his professional career
at Carnegie Mellon University,where he was a principal designer and engineer of the
Mach operating system upon which NEXTSTEP is based.
Tevanian joined NeXT as an engineer on the NEXTSTEP team in January 1988. He
quickly moved up the ranks and managed the operating system.
Now a recognized pioneer in creating cross-platform development environments
used worldwide, Tevanian heads up the engineering teams that make NeXT's current
products award-winning and proven.Mr. Tevanian holds a Ph.D. and a Masters of
Science degree in computer science from Carnegie Mellon University and a Bachelor of
Arts degree in mathematics from the University of Rochester.