[ Back to Index of Web Works ] part of George's Web Site

Related Web Works


http://devworld.apple.com/mkt/informed/appledirections/nov96/java.html

[Title Banner]

---------------------------------------------------------------------------- [Image]

Doin' the Java Jump: Apple's Java Strategy

By Gregg Williams, Apple Directions staff

----------------------------------------------------------------------------

Executive Summary

---------------------------------------------------------------------------- Java is an important new technology, and Apple intends to be a major player in the Java community. It plans to do this by providing the best Java experience to users and developers, by contributing to the evolution of Java, and by integrating Java into Apple system technologies.

Through the Mac OS Runtime for Java software package, Java will be integrated into the Mac OS by the end of 1996. Apple is also working closely with Sun/JavaSoft to ensure that Mac OS technologies--in particular, QuickTime and OpenDoc--work well with Java.

Introduction

The Best Java Experience

How to Earn a Good Reputation

Making Mac OS the Best Java Development Platform

Pippin

Newton

Contributing to Java's Evolution

Integrating Java Into Apple System Technologies

Mac OS Runtime for Java

OpenDoc and Java Beans

Conclusions

----------------------------------------------------------------------------

Introduction

Yikes! Java--Sun's language and environment for doing software that is truly portable across platforms--is hot, and everybody's doing the Java Jump. It's probable that if you aren't doing Java software, you soon will be--and for some pretty good reasons. And if your response is, "Java means nothing to me," let me remind you of a question you probably asked not too long ago: "So why should my company care about Web pages?"

Seriously, though, Java is an important emerging technology--you should find out more about Java if you don't already know about it--and Apple is committed to making sure that it will be a major player in all things Java.

"OK," you say, "but I'm looking inside my Mac OS-compatible computer, and I don't see any Java. What is Apple going to do to become this major Java player?" That's an important question, and it's one that I attempt to answer in this article.

Apple's Java strategy has three pieces:

* to ensure that Apple's platforms (Mac OS, Newton, and Pippin) deliver the best Java experience for both users and developers

* to contribute to the evolution of the Java platform

* to integrate Java tightly into Apple system technologies--including the Mac OS, OpenDoc, and QuickTime

The rest of this article explores Apple's plans for reaching these goals, including discussions of the Mac OS Runtime for Java and relevant parts of the recent Apple-Sun alliance (for details, see the Apple press release at http://product.info.apple.com/pr/press.releases/1996/q4/960918.pr.rel.sun.html).

The Best Java Experience

Apple wants the Java implementation on its platforms--Mac OS, Pippin, and Newton--to be so good that people routinely say, "You've got to deal with Java? Then do yourself a favor--go with Apple. Anything else is just not worth it."

How to Earn a Good Reputation

What does Apple have to do to earn that kind of reputation? First, the Java implementations have to be stable--if the machine crashes while it's running Java code, no one will want to use it.

Second, Apple's implementations of Java must fully comply with the latest version of Java as defined by JavaSoft (Sun's "operating company" devoted to Java); otherwise, some Java code won't work, and we're back to conclusion of the first point. As a corollary to the second point, Apple must also deliver new Java implementations as soon as possible after each new reference release of Java from JavaSoft.

Apple must accomplish the above two points to provide adequate implementations of Java. However, to gain a reputation for excellent Java implementations, Apple has to do more. Apple is working to ensure that its Java implementations are as fast as possible--users will notice and appreciate the speedy execution of Java code in Apple products. In addition, Apple will work to give the best possible human interfaces to its Java implementations; on the Mac OS and Pippin platforms, this means providing Java implementations that come as close as possible to the Mac OS user experience.

Making Mac OS the Best Java Development Platform

Apple also wants to make Mac OS-compatible computers the best platform for developing Java software. (This includes Java applets--which you usually see embedded in Web pages--as well as Java applications--which are full cross-platform applications written in the Java programming language. In this article, I will refer to both of these, collectively, as Java software.)

For you, having a fast and stable implementation of Java is only the beginning. You also need good development tools, and Apple is working hard to ensure that the Mac OS will be the best platform for creating Java software.

Good Java development tools are already available from Metrowerks, Natural Intelligence, Symantec, and other companies. In addition, the Apple-Sun alliance states that the two companies will work together and with third-party companies to bring powerful Java development tools to market.

Pippin

Pippin is a platform for consumer computing devices that Apple licenses to other manufacturers, and each Pippin licensee is entitled to add whatever Java capabilities (if any) it desires to its Pippin-based products. For example, in Japan, Bandai been demonstrating Java capability on its @World product since last March.

The Pippin operating system is based on the Mac OS, and its hardware design supports the addition of extra memory, if needed, to run Java and other environments. (The Pippin architecture can support up to 38 MB of total system memory.) Because of this, any Pippin licensee can add full Java run-time support for its products through Mac OS Runtime for Java or whatever other implementation it might choose.

Newton

Apple's strategy for adding Java support to Newton-based devices will begin with adding the ability to run a fast, stable Java run-time engine, thereby allowing Java applets to run within a Newton Web-browser program. Apple plans to work with JavaSoft and third-party companies to make this happen. In addition, Apple expects to add further Java support to Newton devices later on, based on market needs.

Contributing to Java's Evolution

As the saying goes, the best way to predict the future is to invent it. Apple sees Java as a major force in the computer industry, and it wants to contribute to Java's evolution in a way that benefits the industry by keeping the Java environment open and cross-platform and by making it more useful and powerful as it evolves.

Apple has already taken several steps that have influenced or will influence Java's evolution. Here's one example: Apple's expertise in internationalizing Mac OS computers is widely known, but it is not widely known that Apple contributed its internationalization technology to Taligent, back when the company was jointly owned by Apple and IBM. Last August, Sun announced that it was using the class libraries of Taligent (now owned by IBM) to allow developers to "create multilingual applications in Java."

Two other examples of Apple contributing to the evolution of Java come from the Apple-Sun alliance. The first has to do with OpenDoc and Java Beans, both of which are component software architectures. (For details, see the section "OpenDoc and Java Beans," later in this article.) Apple and Sun will work together to ensure that Java Beans and OpenDoc will work well with each other. This joint effort will ensure that the OpenDoc component software architecture will run smoothly within Java.

The second example that comes from the Apple-Sun alliance is that Sun has agreed to enhance its Java Media Framework (JMF) API to fully support Apple's QuickTime multimedia technology. The Java Media Framework API is a proposed extension of Java that specifies a standard, platform-independent way of doing multimedia tasks from within Java software.

QuickTime is a powerful, full-featured technology that you can use to manipulate many time-based media, including video, sound, text, and MIDI music data. JavaSoft's decision to incorporate QuickTime features into the Java Media Framework API is a big win for Java developers and the industry:

* Java developers will be able to incorporate QuickTime content in their Java software, knowing that the same Java software will run, unchanged, on the Mac OS and Windows platforms and any other platform where Java and QuickTime are present.

* Java developers will also have the benefit of many powerful QuickTime tools and a broad base of shared QuickTime knowledge; both of these will help them create QuickTime content to put in their Java software.

* The industry overall will benefit from having a more powerful Java Media Framework API than it would have otherwise had and a multimedia engine--QuickTime--that is cross-platform. (Microsoft's Java strategy, in contrast, does not concern itself with any platform other than Windows.)

Finally, Apple and JavaSoft engineers are also working together to ensure that future Java extensions are well designed and meet the needs of Apple's customers and technologies. Areas of joint work include but are not limited to the Java Native Method and Debugging APIs and design committees for Java 2D and animation extensions.

Integrating Java Into Apple System Technologies

Apple has pledged to integrate Java into Apple's system technologies, wherever that makes sense. Earlier, I talked about one provision of the Apple/Sun alliance would allow Apple's sophisticated QuickTime technology to be accessed through Java programs. Now it's time to talk about Apple is integrating Java into the Mac OS and OpenDoc.

Mac OS Runtime for Java

Apple is committed to adding run-time support for Java (that is, the ability to run Java software) to the Mac OS and shipping it with every Mac OS-compatible computer. This means that, regardless of how users want to use Java on a Mac OS-compatible computer, they will be able to do so without ever having to wonder whether Java is present. In other words, Java will be an integral part of the Mac OS.

Mac OS Runtime for Java (MRJ) is the software that Apple is developing to implement Java support for the Mac OS. It's not just an idea that Apple is talking about--you can download a working alpha version of Mac OS Runtime for Java today from the Web at http://www.devtools.apple.com/mrj/.

Looking Inside MRJ. Mac OS Runtime for Java is implemented in three pieces:

* The Java runtime, implemented as two shared libraries, is the software that actually runs Java software.

----------------------------------------------------------------------- [Image]

Mac OS Runtime for Java. MRJ (which includes the shaded blocks in this figure) lives between the Mac OS and different types of software that require it to run properly. See the main text for the details of what each individual block does.

----------------------------------------------------------------------- Within the Java runtime "box," the Java class libraries implement the Java runtime environment. The Java virtual machine executes the Java bytecodes that are a part of any Java software. (The Java virtual machine is also called the Java VM--not to be confused with Apple's use of "VM" to indicate its implementation of virtual memory on Mac OS-compatible computers.)

* An invocation API layer makes up the second piece of MRJ. It includes the applet manager, a high-level API that allows Mac OS applications to run Java; the Java Runtime Interface (JRI), a low-level API for invoking the Java virtual machine directly; and the Debugging API, which helps you to write Java debuggers and other development tools.

* Java applet viewers comprise the third piece of MRJ. This piece includes the Apple Applet Runner, a stand-alone Mac OS application that allows users to run a Java applet in its own window, and the Apple Applet Viewer, an OpenDoc Live Object that can run a Java applet anywhere an OpenDoc part can be embedded (for example, in the Cyberdog environment or in any OpenDoc-savvy compound document).

Advantages of MRJ. Currently, every application that supports Java must include its own Java run-time engine (which each one does, with varying degrees of success). This is an expensive process that slows down the development of Java-savvy software; it also limits the number of developers who can create and sell Java-savvy applications.

Mac OS Runtime for Java offers a better solution, for several reasons:

* Through MRJ, Apple is committed to deliver and maintain a stable, standard, high-performance and up-to-date Java runtime system on the Mac OS--so you don't have to.

* MRJ will be part of the Mac OS--that way, you know it will always be present to run your Java applications, applets, and development tools.

* Because you know that MRJ will be present, you do not have to expend substantial amounts of time and money implementing Java yourself and integrating it into your Java-savvy software. MRJ will open Java development to all developers, not the select few who can now afford it.

* By using MRJ, your application will deliver a consistent, high-quality Java experience to users. It will run faster and be more stable than any Java run-time engine that you might buy or implement yourself. And if you've adopted OpenDoc, your software gets Java support for free through the Apple Applet Viewer.

* Finally, the fact that the core of MRJ is implemented as shared libraries brings additional benefits. This allows you to reduce your application's memory footprint, because you don't have to include a Java run-time engine inside your application. Also, multiple applications can use MRJ at the same time. (This leaves users more available memory if they have multiple MRJ-based Java-savvy applications open simultaneously.)

Apple's Delivery of MRJ. As I said earlier, an alpha version of Mac OS Runtime for Java is already available on the Web. A final-quality version, available by the end of the year, will add the invocation APIs; these will allow you to begin calling Java from your software. This means that, by the end of 1996, Java-as-part-of-the-Mac OS will become a reality for both you and customers.

Apple plans to release future final-quality versions of Mac OS Runtime for Java every six to nine months, plus periodic development-quality releases between each final-quality release. Later versions of MRJ will include a just-in-time (JIT) compiler, more performance and human-interface improvements, and enhanced internationalization support. In addition, Apple will supply an MRJ release that is compatible with Java 1.1 as soon as possible after JavaSoft's release of the Java Development Kit (JDK) 1.1.

OpenDoc and Java Beans

Apple's integration of Java into the Mac OS doesn't stop with Mac OS Runtime for Java. Part of the Apple-Sun alliance includes both companies' participation in ensuring that Apple's OpenDoc and JavaSoft's Java Beans work well with each other.

So what does this really mean? It means that two component software architectures--which turn out to complement each other--will join to create a combined component-software solution that allows the creation of open (that is, not controlled by one company), cross-platform components.

What is Java Beans? Java Beans is one of several extensions to the Java platform defined by JavaSoft. (The Java Media Framework API, discussed earlier, is also a Java extension.) Java Beans is JavaSoft's API for creating component software written in Java and usable from Java software. (For better or for worse, when you use this technology to create a component, it is called a Java bean.)

It turns out that OpenDoc and Java Beans complement each other quite nicely. Java Beans was designed to make it very easy for Java developers to create small, fine-granularity components that will run anywhere Java is present. In particular, the Java Beans technology is best for creating platform-independent user interface elements (buttons and radio boxes, for example).

OpenDoc, on the other hand, is a richer, more powerful component software architecture that is strongest for creating more complex components and component-based solutions. It can perform numerous functions that Java Beans wasn't designed to handle--for example, persistence (having a component remember its state after being closed and opened again) and drafts (multiple "snapshots" of the document across time).

However, OpenDoc's greater functionality requires a price to be paid if an OpenDoc part is to be ported to another platform. Unlike a Java bean, which runs as-is on any platform that supports Java, you must rewrite your part's platform-specific code and recompile it to move it to another platform. (One way you can greatly minimize the amount of work needed to go cross-platform is by using the OpenDoc Development Framework to create your part.)

What the Apple-Sun Alliance Promises. The essence of the OpenDoc/Java Beans part of the Apple-Sun alliance is that Java Beans components will work inside OpenDoc containers and that OpenDoc parts will work inside any Java Beans component that is able to contain other components. This means that you will be able to use the best of both worlds--Java Beans to create "small" components quickly, and OpenDoc to use those components to create complex, component-based solutions for the desktop and Internet/intranet arenas.

Conclusions

Will Java succeed? Certainly, a lot of companies (not the least of which are Apple and Sun/JavaSoft) see the promise of Java and are strongly motivated to make sure that it does.

Apple is pursuing three long-term goals to ensure that Java succeeds, that Apple becomes a major force in the Java industry, and that people using Java automatically think of Apple as the best company to meet their Java needs.

First, Apple intends to provide the best Java experience to users and the best environment (through Mac OS-compatible computers) for developers to create Java products.

Second, Apple intends to be a major contributor to the evolution of Java.

Third, Apple intends to integrate Java into Apple system technologies.

Apple is well on its way to integrating Java into the Mac OS with the first release of Mac OS Runtime for Java by the end of the year--but that's not all Apple is doing. Expect to see more Java coverage in Apple Directions in the future.

---------------------------------------------------------------------------- Apple Directions October Web Content, 1996 © Apple Computer, Inc.

[Navigation graphic, see text links]

Main | Page One | What's New | Apple Computer, Inc. | Find It | Contact Us | Help

This page was last modified on Wednesday, October 16 1996 04:33


[ Back to Index of Web Works | Top ]