Apr 97 Factory Floor
Volume Number: 13 (1997)
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.