Apple promises even closer JavaOS ties

Mac's maker announces new Java runtimes, SDK support, links to Rhapsody API, and participation in JFC alliance; developers are pleased but cautious

Links between Java and both the current MacOS and the company's forthcoming "Rhapsody" operating system are already strong and will be getting still stronger, Apple told developers at the firm's annual Worldwide Developers Conference (WWDC) in San Jose, CA, May 13-16.

In a flurry of Java-related announcements, the company noted the pre-release availability of version 1.5 of the MRJ (Macintosh Runtime for Java) plus a preview of a soon-to-follow version 2.0 (already seeded to some developers), a new commitment to make all APIs in Rhapsody's "Yellow Box" program framework accessible through Java, and Apple's formal alliance with Sun and several other firms for future development of the Java Foundation Class (JFC) libraries.

But while these specific measures received generally favorable reaction, many developers also expressed caution about whether Apple's thrust into Java would be sufficient -- and whether even the current direction would be receiving continuing support. "I'm heartened by Apple's embracing Java," notes Bill Hofmann, Development Manager at Cypress Research Corp. (Santa Clara, CA). "But I've been burned before by Apple presenting good technologies and not following through."

Apple's commitment

According to Apple officials, however, even if developers had doubts in the past, the firm's commitment to Java should be increasingly clear. "Apple will support Java aggressively," says Apple Java product manager Will Iverson. "The relationship we had with JavaSoft before was like JavaSoft has with a browser vendor. What we're doing is moving toward a closer relationship." For a start, says Iverson, the new MRJ schedule means Apple is "currently equivalent [to other Java licensees] in terms of the latest release." MRJ Version 1.5, Apple's free Java virtual machine, implements the runtime environment specified in the Java Development Kit (JDK) version 1.0.2, plus a speedy Apple-designed just-in-time (JIT) compiler. The software currently is available for download from Apple at

http://applejava.apple.com/

. The final release is due in July, and will include a JIT for 680X0-based Macs. (The preview has a JIT for Power Macs only.) Previews of MRJ 2.0, which implements the full Java SDK 1.2, are already in developers' hands as well; the final 2.0 release should ship this fall, according to Iverson.

Exposing the API

With full Java support for the Yellow Box (the full set of APIs and operating system services available to a program running Apple's Rhapsody OS) -- plus Apple's recent announcement of plans to deliver Intel-based versions of the Yellow Box that will run under Windows 95 and Windows NT -- Apple says it has found a way to provide a more effective cross-platform solution as well. According to Iverson, Apple's implementation will be based on 100% Pure Java, but even programs that make use of some environment-specific features should find most of those features on both Mac and PC platforms.

If enough users ask for them, Yellow Box implementations on SPARCstations or other platforms also are conceivable, Iverson says. While there's no current call for such implementations or such a development effort, says Iverson, it's possible Apple might support some additions to the interface for Microsoft's version of Java as well. And while Apple will provide similar API access from C, C++, and Objective C, over time Iverson says Apple is moving toward the more object-oriented approaches. Eventually, "Java and Objective C will be the first among equals," he predicted. (See the story "Java development on Macintosh -- is it viable or not?," also in this issue of JavaWorld, for more details.)

Expanding the JFC

Apple's role in expanding the JFC package is not yet defined in detail, Iverson explained, but it's a safe bet Apple will contribute expertise in user interfaces and multimedia. The process should go smoothly, he notes, because Apple and Sun have been working on multimedia issues in other projects. In addition, some Apple technology already has been included in JFC by way of the former Apple-IBM Taligent partnership.

By the time SDK 1.2 and MRJ 2.0 ship, Iverson says, Apple's contributions to the effort should make it possible for programmers -- and to some extent users -- to decide whether Java applications will retain a Macintosh look and feel when running on the Mac or present a more generic look and feel. Any such result, however, may be many months away.

Meanwhile, Iverson admitted, in the short term the JFC announcement is also meant to be read as a political message concerning Apple's intentions to play a part in the official Java community.

Welcome Apple, seriously

"I always think it's better to develop on a SPARC" admits David Spenhoff, director of product marketing for Sun's JavaSoft business unit.

But failing that, Spenhoff says, a Macintosh should be a good choice. "Java developed to the 100% Pure standard will run on any Java-compatible VM," he notes. "Where people are competing is the richness of the development environment. And this is an area where both Apple and Sun have been famous in the past."

Furthermore, Spenhoff notes, Apple's support for the 100% Pure Java standard rather than Microsoft's proprietary version should give anyone looking for a desktop system more flexibility and independence. "Developers have lived through generations of software where they've been increasingly locked into vendors and platforms. What 100% Java brings them is the ability to unlock those limitations."

The developers' view

Appearances and messages do count, say developers. "If [Apple] didn't have Java support [for the Yellow Box], it would be seen as a serious drawback," observes Mark Wieder, a developer with Ah Software (Berkeley, CA). While nobody seems to be delivering anything yet in Macintosh-based Java except applets and a few Web-centric applications, he notes, "Apple has a real incentive for portability given the Windows market is so much larger. [The company] has to do something to convince people to write their applications for the Mac -- or not have to rewrite them. To get developers to work on Rhapsody, Java's portability offers developers a way out."

Avoiding the juggernaut

But given the harsh realities of the marketplace, it remains to be seen whether that particular way out will be available more in principal than practice.

So far, say developers, many Web applications use Java only for part of their code -- leaving other elements dependent on the features of the hardware and the operating system. Given the relative size of the Apple and Windows markets, Apple may have a hard time convincing developers to include support for the Mac hardware in new tools and plug-ins. And without a full set of Mac-compatible tools and plug-ins, support for the Mac may be left out in larger programs as well.

On the other hand, Apple isn't ready to provide the promised full set of tools and Java classes to produce the Macintosh look and feel within 100% Pure Java programs. Without them, as Ah Software's Wieder points out, a Macintosh Java application looks like a generic Unix program.

Microsoft's Mac applications could be another key sticking point. Because the software giant remains the main source of software for the Macintosh, any Apple software strategy can hardly ignore that firm's unique approaches to Java -- especially since Microsoft has said that one goal for future application software is to make invisible to the user any boundaries between local and Internet-based resources.

So on one hand, producing purely portable Java applications could mean giving up the Macintosh advantage against programs that will make full use of the Windows look and feel. On the other hand, surrendering to the Microsoft's "extended" Java-plus-ActiveX approach completely would leave the Macintosh with no distinctive advantage over Windows -- as well as offend many developers (and users) who believe in the Mac and its graphical interface.

That makes discovering the right way to do Java essential for Apple -- and these announcements comprise only a few small steps in the right general direction on what still could be a difficult and dangerous road.

Steve Rosenthal started programming mainframes for multinationals in the 1960s. By the time the Macintosh came out, he had worked his way through minis and micros -- as well as switching his focus from writing code to writing about it. He's since produced more than 2,000 articles about computer technology for magazines ranging from MacWeek to JavaWorld's sister publication, NetscapeWorld.

Learn more about this topic