While lagging behind on its releases, it looks like things are back on track for Mac Java The news for Java developers on the MacOS is as good as it’s ever been. Apple is committed to Java and is including the new Java virtual machine in its February release of MacOS 8.1. Apple and Sun are working out the kinks together, and we should see software from Sun and Apple being released more quickly than before. Also, Metrowerks and Symantec provide two very different integrated development environments (IDEs) with strong support for Java on the Mac.The keynote“We love Java,” asserted Steve Jobs during his keynote address at the Macworld San Francisco convention on January 6, 1998. But Apple’s interim CEO did not provide much in the way of specifics on his company’s plans for Java, and Java was mentioned only in passing — a marked contrast to the position of prominence the language enjoyed at Jobs’s keynote address at Macworld Boston last August. In fact, the announcement (and accompanying press release) that the Macintosh virtual machine (VM) now supports the Java 1.1 specification is buried in the details of the MacOS 8.1 release.Jobs announced that the February release of MacOS 8.1 will be available for free to current owners of MacOS 8 and will include the MacOS Runtime for Java (MRJ) version 2.0. (See the sidebar on “MacOS 8.1 released.”) MRJ 2.0 corresponds to Sun’s Java version 1.1.3 and is Apple’s first public release of a virtual machine that runs code taking advantage of the new language features that are part of Sun’s 1.1 release. Although the MacOS 8.1 release includes other non-Java related features, you don’t have to wait to upgrade to MRJ 2.0; it has been available as a free download since December 20. For more information on what is included in MRJ 2.0, as well as links to download the software, see “Apple releases MacOS Runtime for Java (MRJ) version 2.0” in last month’s issue of JavaWorld. While Jobs’s August address spoke of the future, his recent January keynote mentioned only what has already been accomplished and what is almost ready to ship. The San Francisco keynote included software demos from Microsoft and Oracle. Oracle’s John Wookey announce more than fifty Oracle Java-based enterprise applications that will run on the recently released Power Macintosh G3 systems.Jobs stressed that we will see a return to the days when Macs were different and special, and interesting software was available “first on the Mac” and “only on the Mac.” Thus far, the Java release schedule has been more like, “almost a year later on the Mac.” We will see if Jobs’s love of Java will translate into a commitment to shorten the lag in Java releases for the MacOS.Java VMs for the MacOSActually, MRJ 2.0 is not the first VM to support the Java 1.1 specification on the MacOS. Metrowerks had produced an earlier version and licensed it along with the Metrowerks just-in-time compiler (JIT) to Microsoft for its MacOS versions of Internet Explorer (IE) prior to version 4.0. IE 4.0, distributed for free at Macworld, includes the above, as well as a new VM written by Microsoft and new Metrowerks JITs. Last year Gordy Davies of Metrowerks told JavaWorld that “since there wasn’t a VM available on the Mac, we developed one. However, the Java virtual machine is really OS software, and we will support Apple’s Java VM for the Mac as soon as they begin shipping in parallel with the Solaris and Windows versions.” Greg Galanos, Metrowerks’s founder, president, and chief technology officer, says that “it is still the plan that there be one VM on the Mac.”“Life for developers is easier with a single VM,” says Apple’s Java product manager, Gary Little. The current version of Metrowerks’s CodeWarrior Pro 2 allows users to select whether they will use Metrowerks’s VM or MRJ. Both Symantec’s Visual Café and the now defunct Roaster, use Apple’s MRJ for their VMs.According to Apple, MRJ 2.0 passes the 100% Pure Java conformance tests supplied by Sun. Gina Centoni, Sun’s group manager of the Java Platform, is pleased that MRJ is available and is, naturally, a strong advocate of 100% Pure Java certification. Centoni also sees the benefits of a single VM for the MacOS supplied by Apple, saying, “not 100% Pure is in no one’s best interests.” The Mac lag persists — the situation with Sun and AppleAt Macworld Boston in August, Apple Java evangelist Shaan Pruden announced that a beta of MRJ 2.0 would be public by the end of September. Apple’s Little recommends that developers who wish to have early access to Apple’s Java software subscribe to the MRJ-Dev Digest (see Resources). Beta versions of MRJ 2.0 were available in the fall, but an easily-obtained password was required to access the site. The password appears on the MRJ-Dev Digest and is given to almost anyone who requests it. Little explains that agreements with Sun keep Apple from releasing these beta versions more publicly. Sun’s Centoni answers that, although “Sun’s Java licenses are custom made, each licensee can release betas as they see fit.”It is difficult to determine which parts of the MacOS version of Java are the responsibility of Sun and which are the responsibility of Apple. “Apple has assumed primary responsibility for developing a MacOS implementation of the VM,” says Apple’s Little, who is pleased that “JavaSoft does lend engineers to the project.” Sun’s Centoni agrees that “delivery schedules are the responsibility of the licensees” and sees the role of Sun as supporting the efforts of companies such as Apple. At a conference session on Java on the MacOS, Little said that the lag should shorten: “Apple doesn’t expect a timely Macintosh reference release from Sun, so we no longer wait for one to arrive.”“Sun is responsible for assisting developers in porting Java, “explains Centoni. “Sun provides timely delivery, as well as timely bug fixes and timely turn arounds.” She adds that the new “Java porting and tuning center extends services to licensees to ensure timely updates.” This goal has not yet been met. In Cay Horstmann’s and Gary Cornell’s book Core Java 1.1 (part of Sunsoft Press’s “Java Series”), the authors note that Sun “usually concentrate[s] on Solaris and Windows 95/NT first, support for the Mac comes only down the road. Solaris and Windows are also usually the first platforms where improvements show up or where bugs get squashed.” Last month, a JavaWorld reader poll asked “With the lag in the JDK releases for Mac, can a Java developer work on a Macintosh and still be competitive?” The results were very nearly even: Of the 509 respondents, 47% said “yes” and 45% said “no” (6% had “no opinion”). Those that answered “yes” cited, among other reasons, that browser support for 1.1 has only appeared recently, so Mac developers are really not that far behind. Those that answered “no” did point out that the lag means that Windows developers have almost a full year’s headstart learning the new technology. At the conference session on Java on the MacOS, panelist Chuck Shotten of StarNine Technologies did not see that lag as the major problem for Mac developers. He pointed out that “the first MRJ supported what most developers needed.”Now that the MacOS has a 100% Pure Java implementation of the Java Runtime Environment 1.1, when can we expect easy-to-use versions of Sun software such as the Bean Development Kit (BDK)? As was pointed out in last month’s JavaWorld article, you can get the BDK to run — it is not, however, easy. Currently, there are versions of the BDK on Sun’s site for easy installation for the Windows 95/NT and Unix platforms. “Sun will create a clean install of the BDK for the MacOS,” said Sun’s Centoni. There is no release schedule at this time.Another look at the numbersPart of what makes following Java on the Mac so confusing is that the release numbers don’t match up. MRJ 2.0 corresponds to Sun’s Java specification 1.1.3. This is the version that will ship as part of February’s release of MacOS 8.1. The current version for Windows 95/NT and Unix is 1.1.5. Little says that Apple has a spring target for the MacOS version 1.1.5. Centoni says that having 1.1.3 now should not be a handicap for MacOS developers; that Sun is heading for version 1.1.6; and that the releases between 1.1.3 and 1.1.6 are just bug-fix releases. Sun has already released early versions of the Java Development Kit (JDK) 1.2 — this version of Java contains new features. Sun currently plans to release the final version of 1.2 by the end of the second quarter. At the August Macworld, Apple’s Pruden promised “1.2 support in early 1998 in MRJ 2.x” that would “also include features that didn’t make it into 2.0.” More recently, she wrote to the MRJ-Dev Digest that Apple is “looking at the source code from Sun and [with regards to the release of a 1.2 MRJ implementation has] no announcements at this time.” Little is still aiming for a much smaller lag time and predicts “conservatively a release from Apple by the end of this year.Apple’s version of the JDK 1.1.3 is promised by the end of January, but Apple’s Little recommends that developers use a compiler from Metrowerks or from Symantec. You will be able to develop applications with the freely available SDK, but serious developers will want to take advantage of the development environments provided by Symantec and Metrowerks. For Java developers, Symantec’s Visual Café allows you to work back and forth between the GUI builder and code. One developer at the conference session mentioned that this is a great way to start to learn about programming in Java. Symantec’s Will Iverson suggests that its product will appeal to “Visual programmers, anyone who is interested in creating user interfaces, anyone who wishes to hook up databases (such as FileMaker) to the Web.”Metrowerks’s Galanos points out that many programmers still work in more than one language and that “they don’t always choose what machines they work on.” CodeWarrior continues to focus on “multiple language support, multiple target support that runs on multiple hosts. [Which means that] if you are working on different platforms you can just bring your project file across and rebuild.” Microsoft has no plans to offer a development environment for the MacOS. Microsoft and Apple have exchanged test suites and have worked together on some components of MRJ. As for the Microsoft/Sun legal dispute over Java, Metrowerks’s Galanos reassures us that “people should not be concerned about the litigation. When there was no VM for the Mac, Metrowerks provided one. We don’t want our customers held hostage. We’ll deliver.”It appears that there is support for Java developers who want to work on a Mac. As Apple’s Gary Little says, “we prefer that development is done on a Mac because then the software is debugged on and will work on a Mac. Right now much of the Java programming is just front-end control-panel type of applications.” Little mentioned one of these at the conference session: “Biscotti” is an Apple project that will provide a Java front-end to the new Quicktime 3.0 that was demonstrated at the keynote address.Daniel Steinberg is a visiting assistant professor of mathematics at Oberlin College. He learned to program in C (by reading Kernigan and Richie, and asking friends) and C++ on a Macintosh to help his research on elastic curves in hyperbolic space. Object-oriented design is the way mathematicians view the world, so programming in Java was an obvious next step. Daniel taught an introductory course in Java at John Carroll University last spring. He’s sure that the first words his daughter Maggie Rose spoke were “My Mac” — his wife thinks Maggie was saying “Mama.” JavaTechnology Industry