The news from Macworld New York is about faster machines and a modern operating system -- and, if you read between the lines, you'll find good news for Java on the Mac At January’s Macworld Expo in San Francisco, an hour before the keynote the auditorium was filling up and the line extended completely around the block. An hour before the keynote address for this summer’s Macworld Expo — the first in New York City — there wasn’t much of a crowd and the auditorium doors hadn’t even opened yet. Apple’s acting CEO, Steve Jobs, wasn’t even scheduled to appear in person: the program said that his part of the keynote would be delivered via satellite. Were they having trouble with the feed? Did Jobs oversleep? By the time the doors opened at 8:45 a.m., the crowd had swelled and there were enough people to fill the giant hall.The keynote addressSince Steve Jobs has returned to Apple, the company seems to have a policy of setting reasonable deadlines — and beating them. Jobs’s keynote itself was an example of this commitment to “underpromise and overdeliver”: Jobs was to have appeared at the keynote via satellite, and yet there he was in person, delivering his vision of where Apple is now and where it’s headed.At no time in his keynote address did Jobs explicitly mention Java or Apple’s Java virtual machine (JVM), the so-called Macintosh Runtime for Java (MRJ). He did, however, repeatedly refer back to the announcements made at Apple’s World Wide Developer’s Conference (WWDC) in May. There, Jobs’s big-three software announcements concerned QuickTime, plans for the MacOS, and Apple’s plans for and commitment to Java. At the WWDC, Jobs acknowledged that Apple’s implementation of the JVM is slow. But Apple had just licensed Symantec’s JIT (just-in-time) compiler, and Jobs promised that “we’re going to pick up those extra CaffeineMarks. Our goal is to be second to none in performance.” This is not just lip service from Jobs. Gary Little, Apple’s Java product manager, has said that Jobs is committed to increasing Apple’s Java support and engineering staff.At Macworld New York, Jobs first reviewed what Apple had accomplished in the past year before discussing Apple’s future plans. He said that there were no longer questions about Apple’s survival with the new management team, board, and the Microsoft deal (see Resources for coverage of last summer’s keynote address). Jobs also said that Apple has answered questions about its current stability by announcing profits in three successive quarters, addressing retention of staff members, advertising both the Apple brand and products, and introducing a more focused product distribution plan using CompUSA and the Apple Online store.What new Mac hardware means for JavaOne of Jobs’s strengths has been to simplify and deliver the Apple message. On the professional side, Apple will be selling the desktop Power Mac G3 and the portable PowerBook G3. Jobs proudly showed the Bytemarks (Byte magazine’s measure of processor subsystem performance), comparing the 400-MHz Pentium II’s score of 5.6 to the Apple’s 266-MHz and 300-MHz G3’s scores of 9.0 and 10.2. Java developers who wish to deploy on the Mac will be interested in Apple’s soon-to-be-released iMac, its consumer desktop platform. The fourth and final platform offered by Apple these days is the consumer portable, which Jobs promises for early 1999.In his keynote, Jobs noted that people are not upgrading their Macs. Part of the reason for this is the confusion about the different company offerings. Jobs admitted even he didn’t know which Mac to recommend to his friends. But more important than this, according to Apple’s acting CEO, is that “Apple did not have a compelling product under ,000.”Given what MRJ now supports and plans to support, this means that much of Apple’s install base is not able to take advantage of Java on the Mac. Apple’s Little has said that the fall release of MRJ 2.1 will likely support Mac OS 7.6.1 or later, but 68040 systems will not be supported in the future. There has been discussion on the MRJ-Dev newslist that you will soon need at least OS 8 and perhaps by next year OS X to run MRJ. Now that Apple is offering a competitive product, Mac users will be running more recent operating systems on faster hardware. At the same time, the MRJ team has been improving the performance of MRJ (for more on this, see the Macworld Expo article in this issue), so people will have a faster implementation of MRJ running on faster machines. With a whole new audience coming to Java on the Mac, now’s the time for Java developers to make sure their apps and applets run well on the platform.New MacOS plans and JavaIt’s been hard for developers to depend on recent plans for the MacOS. What was agreed upon by Apple and its users was that the OS needed a major rewrite to make it into a modern operating system. The requirements included protected memory, preemptive multitasking, multithreading, and fast networking. Basically, Mac users are tired of rebooting when an application fails.Looking back at a few years’ worth of Macworld magazines, many articles can be found detailing the future of the MacOS (including this month’s cover story — see Resources for links). The OS 8 that was discussed just two years ago (complete with schedules and books detailing it) is not the OS 8 Apple delivered last summer. The MacOS 8 was an improvement of the existing MacOS 7.6, but was not a giant leap forward. Based on the operating system that Jobs brought with him from NeXT, Rhapsody was to be the modern operating system people wanted from Apple. Java developers were told that this was good news for Java programming for the Mac. Last summer at Boston’s Macworld Expo, Rhapsody Evangelist Leon Baranovsky said Apple would support the current OS for a while, but that Java developers should move to Rhapsody. Rhapsody included a Java Runtime that was tied to the so-called yellow box. This was to have offered better performance and greater portability for Java developers. (For more on Java and Rhapsody see the link for the JavaWorld article in Resources.)Apple’s current direction is a little different from the one published in previous MacWorlds. At the recent keynote, Jobs announced that his company plans to continue to support MacOS 8. The current version, which was released in January, is 8.1. The next version is 8.5 (code named Allegro) and will be released in early fall of this year. OS 8.6 is slated for the first quarter of ’99, with the next release (code named Sonata) due about six months later.What about that “modern OS” people have been asking Apple for? The problem with a brand-new OS is that many current applications will require a great deal of rewriting to make them work on a new OS. With Apple’s marketshare as small as it is, this may not have appeared to be a worthwhile task to many of the developers of key apps for the Mac platform. But if these developers wouldn’t port their applications to Rhapsody, Mac users wanting to stay current would have to move to the Windows platform. Apple’s compromise was to look at the 8,000 core APIs and eliminate about a quarter of them. At May’s WWDC, Jobs announced that Apple reduced the core set of APIs to about 6,000 APIs, collectively called Carbon. This will make it much easier for developers to port existing applications to work under the new OS. They will only have to do major rewrites if they want to take advantage of the new features.The new operating system Apple has come up with is the MacOS X (read: 10) — a combination of Rhapsody and MacOS 8. The advantage to developers with products running on OS 8 is that existing software can be “tuned” to run on this new OS without much work. Rhapsody will be delivered as MacOS X Server in the fall of this year. The beta of MacOS X is promised for the first quarter of next year, and the final should ship about six months later.How Java will work under OS X has not yet been decided. Apple could easily port much of its MRJ effort and just get its VM up and running. But to take advantage of the new OS X offerings, the team has quite a bit of work ahead of it. Apple’s Little explains that a big part of the job is that “OS X needs peers tying into the yellow box. This will tie JavaBeans to yellow objects.” Java developers should also see increased performance in multithreaded applications with the new OS. ConclusionNow that Apple is selling more Macs and targeting the Internet world, its Java performance will have to improve. The company is committing more engineers to the MRJ project and licensing technology, such as Symantec’s JIT compiler. Its CaffeineMarks for early versions of MRJ 2.1 (which corresponds to JDK 1.1.6) are more than triple the numbers for MRJ 2.0. This is an encouraging sign.Unfortunately, work for the MRJ team is mounting. Windows and Solaris betas of JDK 1.2 have been out for months, yet Apple currently has no schedule for its 1.2 release. With two different OSs to worry about, the team may have to come up with different implementations of MRJ to best take advantage of each. Ironically, the problems with how to best implement Java under OS X stem from problems of multiple inheritance: OS X derives from both OS 8 and Rhapsody. Apple engineers have considered how best to implement Java under each of those operating systems and now have to make choices for the hybrid.Apple now controls its own destiny for Java. The MRJ is the only Java VM that works on the Mac. If Jobs truly wants the Mac to be a great platform for Java applications and applets, his company will have to produce. The CaffeineMarks for the pre-alpha version of MRJ 2.1 on a 300-MHz G3 are about 80 percent of the marks for Microsoft Internet Explorer running on a 400-MHz Pentium II. A few months ago the Apple marks were 24 percent of the Pentium’s. For Mac owners this is very good news. 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 in which mathematicians view the world and so programming in Java was an obvious next step. Daniel has taught an introductory course in Java and OOA/OOD. 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.” JavaTechnology Industry