Apple announces Java 2 plans at MacWorld

Long silent about future directions, members of Apple’s Java team outlined

On January 7, JavaWorld hosted its third State of Java on the Mac session at the MacWorld Expo. During the session, Apple stunned the audience by announcing that Java 2 will ship with Mac OS X.

The lively session also featured software demonstrations from AgentSheets, Metrowerks, Zero G Software, and Apple’s QuickTime for Java group. Audience questions wrapped up this productive look at Apple’s Java strategy.

The Demos

During the session, AgentSheets, Metrowerks, and Zero G Software all demonstrated their Java products for the Mac.

AgentSheets

AgentSheets President and CEO Alexander Repenning described AgentSheets as a “next-generation spreadsheet in which you place … agents in a cell-organized structure.” Apple, long interested in the AgentSheets research, has become a sponsor and supporter. Indeed, Apple has used some of the ideas in programming projects for children.

Repenning said that the recent work on AgentSheets has created a “souped-up version that allows you to have high-end simulations that can on the one hand be built by kids and at the same time by NASA scientists.” Microgravity researchers at the University of Colorado used AgentSheets to model and refine an E. coli life-sciences experiment that later flew on the same October 1998 space shuttle mission that carried John Glenn. Repenning used a mudslide avalanche simulation to demonstrate how easy it was to vary parameters and change rules. Once the rules were set, he used the Ristretto tool to convert the simulation to a Java applet. The simulation’s performance under Java was very good; in fact, the execution was so fast that you could actually see the shockwaves moving through the mudslide.

On the down side, Repenning pointed out that Java applets typically run faster on Windows machines. He also mentioned that while the complete AgentSheets programming environment is available in Windows, “Apple isn’t quite ready with some crucial pieces, such as Java 2.” Repenning repeated his commitment to the Macintosh platform and hoped out loud that platform differences in Java functionality wouldn’t force him to move over to Windows.

Metrowerk’s CodeWarrior

Metrowerks Software Engineer Greg Bolsinga showed CodeWarrior for Mac OS, Professional Edition 5.3, which recently went up on the Web (see the

Resources

section below for more information).

During his presentation, Bolsinga repeatedly referred to the upcoming version of CodeWarrior that he is working on but wasn’t allowed to show. He noted that the next version’s layout managers will be greatly improved, and that other upgrades were in the works as well. Bolsinga said that the Metrowerks Java Compiler, written in Macintosh native code, performs very quickly. He further explained that the Metrowerks debugger is controversial because “we used to make our own virtual machine (VM) and we made up our own way of debugging Java which is completely nonstandard but is very fast. Now our default install is the standard way of debugging, and it’s not very fast.” Bolsinga explained that by “the standard way of debugging,” he meant Sun’s Java debugging APIs. By using Sun’s debugging APIs, CodeWarrior can debug many JVMs from different vendors. It also enables remote debugging, because it is based on TCP/IP. He said that Metrowerks and Apple anticipate that this method of debugging will be faster in Mac OS X, since there’s no cooperative multitasking involved there to slow it down. Bolsinga demonstrated the construction of a simple Java application using CodeWarrior’s wizards and visual tools. He explained that CodeWarrior’s “RAD tools use JavaBeans, so you can have beans from third parties.” He then included an IBM digital clock bean in his demo. Using the CodeWarrior Object Inspector, a user can see and edit the properties the JavaBean exposes. Developers who’ve worked on other platforms have seen tools such as these for Java 1.1 and later, but they are fairly new for Mac OS users.

Zero G Software’s InstallAnywhere

As Zero G’s CEO Eric Shapiro explained, “When you finish writing your Java application, and you’re ready to deploy it and want to ship it out to your users, regardless of what platform they’re on, you can use InstallAnywhere to build a single universal installer for your application.” (To download the free version of Zero G’s InstallAnywhere, see

Resources

.) Shapiro showed how easy it is to use InstallAnywhere to generate a Web installer for a developer’s application. InstallAnywhere addresses problem areas for developers, according to Shapiro. For example, there’s a time during the creation of the installer when the developer is prompted to specify the main class and class path. Shapiro explained that Zero G’s research found that “most end users and some developers enter the main class wrong, so we’ve added a button that automatically finds all the main classes and entry points to your application without your having to do anything.” InstallAnywhere will also set class paths for you, he said. Shapiro added that developers can specify the installer’s target platforms and whether or not to include a VM. Shapiro then talked about Apple’s soon-to-be-released MRJ (Mac OS Runtime for Java) AppBuilder, which is included in MRJ 2.2. He announced that “Zero G is merging the [MRJ AppBuilder] product with [Zero G’s] existing LaunchAnywhere to build one unified way of launching applications across platforms.”

Apple’s Java strategy

Steve Naroff, Apple’s senior director of Java technologies and core tools, reminded the session audience that Apple’s Java team had announced two years earlier that it would pursue Apple-specific technologies. Naroff explained, “Even though we think Java is an interesting platform, we also think that it is a very interesting language.” He pointed out that Apple had Java-enabled technologies such as QuickTime, AppleScript, and Cocoa on Mac OS X. Apple, therefore, has enabled the large population of Java programmers to take advantage of some native Apple services, according to Naroff. In related news, Apple’s iCEO, Steve Jobs, had announced at the MacWorld Expo keynote address that Apple would not be pursuing a dual operating system strategy as previously announced. By summer, Mac OS X will be available and by the end of the year, all new Macs will ship with Mac OS X installed.

AppleScript for Java

Alan Samuel, Apple’s Java technology manager, explained that AppleScript for Java is an example of something Apple does on top of porting the VM and JDK to Mac OS. According to Samuel, “[Suppose] you write a Java application or applet on another platform. Run that same application or applet on MRJ and all of a sudden it is scriptable.” AppleScript for Java can provide communication between the Finder in Mac OS or any other native application and Java applications and applets. Apple’s Levi Brown demonstrated the new QTZoo QuickTime for Java tutorial. Brown showed a kiosk application that might run at a zoo. Within the application, regions that could receive mouse events were irregularly shaped. Brown explained that while such an effect was difficult with pure Java, “the core functionality of QuickTime is exposed to you in Java. So you can do all the great things you’re used to doing in QuickTime, like displaying movies, transitions, images, and rollover technology.” The full source code of the QTZoo tutorial will be up on Apple’s site in the next couple of months, added Brown. Bill Stewart, chief architect of QuickTime for Java, pointed out that it had taken Levi Brown and Michael Hopkins only a couple of weeks to write the code for QTZoo, which demonstrates the power that QuickTime for Java provides for those who want to use QuickTime as a presentation engine. Stewart promised that current QuickTime for Java applications will run smoothly under Mac OS X when Apple releases the OS this summer. He also cited two interesting features in the currently available QuickTime 4.1 release: an XML parser and support for SMIL. The latter is a format that allows you to describe multimedia with an XML-like grammar.

The future

In general, Apple avoids talking in public about future software releases; and yet, Steve Jobs spent almost an hour of his keynote address demonstrating features of Mac OS X, which he said won’t be released until this summer. Similarly, at the session, Apple’s Java team spoke publicly about the plans for Java on the Macintosh.

MRJ 2.2

The current public release of the Macintosh Runtime for Java is MRJ 2.2 Early Access Release 2. Samuel announced that Apple “plans on shipping MRJ 2.2 pretty much in concert with Internet Explorer (IE) 5.0.” With Microsoft and Netscape in agreement about a single VM for the Macintosh platform, the developer experience became easier, according to Samuel. Apple’s VM already plugs in well with the current version of IE, and features such as applet caching should make that experience even better with IE 5. Netscape’s VM on the Mac has been a sore spot for years, but the next release of Navigator/Communicator will support Apple’s VM, which should improve the user’s experience. Adding to the discussion, Naroff pointed to the “amount of progress in performance and compatibility [with] every release of MRJ.”

The big news: Mac OS X will include Java 2

Samuel asked the audience members who have Mac OS X developer preview 2 (DP2), “What version of Java is on that release?” A sigh of relief went through the room as Samuel confirmed the rumors that the DP2 included the 1.2 VM. Furthermore, Naroff confirmed that DP2 contained a VM based on the 1.2 source base. In the next release, DP3, developers will find the layers sitting on top, such as the AWT, Swing, and Java 2D. He said that between DP3 and the final release, the Apple engineers will make sure that it has the performance Apple wants from it. It is also possible that the company will upgrade to 1.3 without a 1.2 release. Naroff clarified that he was not making a promise, but 1.3 fixed a lot of bugs and performance issues that Apple was concerned about.

Naroff further explained that Apple’s “Java 2 strategy is consistent with the OS strategy outlined by Steve Jobs in his keynote. It’s forward thinking and totally focused on Mac OS X. So right now we don’t have any plans to move Java 2 in its entirety — or, actually, in any form — to the classic Mac 8/9 environment.” Naroff summed up Apple’s plans by saying, “We’re focused on delivering a great Java 2 on Mac OS X. The classic Mac OS 8/9 will continue to receive upgrades (based on JDK 1.1.8) focused on improving performance, reliability, and browser support. There really is a fork in the road where we’re concentrating on the classic client and browsers and in Mac OS X we’re focusing on the entire Java 2 stack.”

For over a year, Mac developers have been clamoring for such an answer. They’ve just wanted to know what will be supported and, roughly, when. There has been concern about Java support for users who don’t or can’t upgrade to Mac OS X. Naroff explained that Apple will “continue to invest in the 1.1 codestream in classic (Mac OS 8/9).” Apple is following this strategy in hopes of providing a better browser experience for users. Naroff also expects a number of improvements to be available in dot releases of MRJ 2.2 in the next six to nine months.

The discussion: Apple clarifies its Java 2 plans

Zero G’s Shapiro tried to clarify Apple’s Java 2 news. He said he was pleased that people “could talk about Java 2 being in DP2, since this is a public forum.” He added that we had “heard an absolute commitment from Steve Naroff that Java 2 will ship in Mac OS X.” “I said in DP3,” replied Naroff. Shapiro continued, “So I almost want to nail this down to a concrete term. What you’re saying is that in Mac OS X, Apple will ship a fully compliant Java 2 VM. Is that what you’re saying?” Naroff clarified, “What I said we’re going to provide in DP3 is the rest of the API set, AWT, and Swing and Java 2D…. Between DP3 and the final release there are business discussions going on between Apple and Sun that need to be finalized before I say the full Java stack in all of its entirety will be on every Mac OS X system that ships. The technical foundation has been laid and we’re giving it out to you guys and we’re very hopeful that the business side will come together.” This is not the first time we have heard about business issues standing between Apple and Sun. This past summer, audience members asked Apple’s Bill Stewart why QuickTime wasn’t available on the Solaris platform. He answered that the issues were not technical.

The questions

The first audience question was posed to Naroff; he was asked to comment more about the business issues. He answered that one of the concerns is that Sun isn’t doing the right thing with respect to the standardization process. Apple is looking for Sun to have the promised Open Forum to help evolve the Java 2 standard.

Shapiro suggested that Apple consider the Java Standards Review, which is open to any licensee. Zero G participates in the process and is considered an expert in the new standard for installation technology. He suggested that Apple could use this process to get QuickTime for Java accepted as a Java standard. Naroff acknowledged that this forum for people to be heard does exist, but pointed out that “Sun has sole control of vetoing a proposal. We’d like this process to evolve so that it is more open and fair.” The next question followed up by suggesting that these issues would be different on the server side, where Sun is focusing its attention. Naroff agreed that Java has been more successful on the server than on the client. He then pointed out that issues of standardization are the same. There are reasons that those writing on the server side wouldn’t want to have to carry around the AWT and Swing, but they’re part of the Java 2 Platform, Enterprise Edition. Stewart added that the problem of integrating Java into the Web still remains. While he says he understands the reasons that Sun has moved Java into the server market, “we shouldn’t back off wanting Java to be a significant technology on the client side.” Naroff affirms that Apple wouldn’t invest time and effort in Java if the company thought Java was dead on the client side. Indeed, he said that there can be a resurgence on the client side.

The next question asked about the future of the Mac look and feel. Apple’s Pete Steinauer agreed with the questioner that the “Mac look and feel that currently ships as part of Swing is largely deemed unacceptable.” He said that the Apple team was working to have this addressed by the time Mac OS X ships.

An audience member asked why Apple’s WebObjects wasn’t mentioned. Naroff answered that the company just didn’t want to preannounce news from the WebObjects group, but that WebObjects is a mostly server-centered Apple technology that is Java enabled. Without giving anything away, he assured the audience member that the WebObjects team was working more deeply with Java.

Conclusion

The State of Java on the Mac session was a lot of fun from start to finish. Although it’s often difficult to get any real information out of Apple, in this session the demos were helpful, the news was plentiful, and the discussion was lively. Most importantly, developers and users finally heard Apple’s Java strategy. Apple will provide Java 2 on Mac OS X. It is already available for appropriately registered developers and will be available to the public with the first release this summer. For those users who can’t or won’t upgrade to Mac OS X, Apple will continue to support Java 1.1. The main concern here is that the browser experience should be a good one for those still using Mac OS 8/9. This summer’s MacWorld and World Wide Developer’s Conference should be a lot of fun for fans of Java on the Mac.

Daniel Steinberg is a visiting assistant
professor of mathematics and computer science at Oberlin College.
He learned to program in C and C++ on a Macintosh to help his
research on elastic curves in hyperbolic space. Object-oriented
design is the way in which mathematicians view the world, so
programming in Java was an obvious next step. Daniel teaches
courses in Java and object-oriented analysis and design. He thinks
that the first words spoken by his daughter Maggie Rose were “my
Mac” — his wife thinks Maggie was saying “Mama.” Maggie knows that
she was asking clearly for an iMac, and that she prefers Tangerine.
Her younger sister Elena can’t speak yet, but she keeps pointing to
DVDs.

Source: www.infoworld.com