Macworld: Java 2 for the Mac almost ready
Macintosh enthusiasts must wait for Mac OS X to finally see solid Java 2 support
It has been three years since Apple CEO Steve Jobs explicitly mentioned plans for Java on the Macintosh at a Macworld Expo keynote address. There has been plenty of Java news for those willing to read between the lines in the six keynotes since then. But there hasn’t been any real Java news for a long time, and since the Macworld show targets consumers more than developers, that trend continues.
The promise of Java 2 on the Mac won’t be realized until Mac OS X is released later this year. Although this summer’s Macworld mostly featured hardware announcements, the occasion provided an opportunity to look once again at the state of Java on the Mac. In this article, we’ll combine the news from the Macworld keynote, the Expo floor, and the conference session on Java on the Mac. We’ll also complete the picture with items from this summer’s JavaOne developer conference.
The JavaOne keynote
In the past, Apple and Sun have blamed each other for the lack of Java support on the Mac. Both have made several promises that the situation would change and that the lag between the release of Java products for the Windows platform and their release for Mac OS would be greatly reduced. Last year, Apple was a gold sponsor at JavaOne, and yet Sun CEO Scott McNeally still dismissed the importance of having Java on the Mac at his keynote address.
This year, the situation was surprisingly different. Steve Jobs joined McNeally during the opening keynote address at JavaOne. The exchange was a public commitment that the two companies would work together to ensure the quality of J2SE on the Mac. You may have already seen a line or two from the exchange; for those of you who may have missed it, here is a recap of what was said at the JavaOne keynote.
Scott McNeally introduced Jobs by saying, “When it comes to Java developer passion we have a new leader and a new advocate. This is somebody who knows more about developer passion. Actually, he is one of my personal heroes, because he really paved the way for us kids to go out and try to do something different in the Valley. [Jobs] really made it easy for four 27-year-olds to go out and raise venture capital eighteen years ago when we started the company. [He’s] a good buddy of mine, and [it’s] a real thrill to have him here — finally.”
In his turn, Steve Jobs, to thunderous applause, stressed that Apple was back and selling a lot of computers, saying, “It’s good to be here today. As you know, we have 25 million computers out there. We ship about five million a year. But to be honest, I think some of you have not been thrilled with Java on the Mac.”
McNeally added, “Like my wife.”
Jobs continued, “The reason for that is Sun and Apple haven’t worked that closely on Java in the past.”
“That was your fault,” interrupted McNeally. “I think we had a hard time feeling like the [Mac] Java desktop strategy was working with us.”
“And you guys were putting Java in light bulbs and everything else,” answered Jobs.
Jobs then keyed in on his message: “We want to bring Java back to the desktop in a really big way. I’m here today to personally tell you we are working hard to make Mac the best Java delivery vehicle on the planet. The biggest thing we are doing is we are going to bundle Java 2 SE into every single copy of Mac OS X [the upcoming Macintosh operating system] that we ship later on this year.”
McNeally chimed in: “Sun is absolutely committed [to this]. We are working hand in hand. It’s a pretty long commute: we have to go across the street to go visit Apple. We’re committed to absolutely supporting them and making sure they have the fastest, most reliable, latest up-to-date version of SE running on their machine.”
Jobs filled in the details: “We’ve ported the HotSpot VM to a superfast PowerPC processor. But we’ve gone even farther. We actually mapped the Swing UI stuff onto our new graphic subsystem ports and our new Aqua look and feel. It’s gorgeous.
“You’re not going to have to lug around 20 MB of Java 2 on your back to throw into Windows every time you want to run your app. It’s going to be there right out of the box on every Mac,” Jobs added.
After the demo of WebObjects, McNeally commented, “We’re a Mac house at home — my boys and my wife. This makes me very happy.”
The Macworld keynote
In contrast to June’s JavaOne announcements, the Macworld keynote contained no explicit mention of Java on the Mac. However, depending on how far you stretched your imagination, there was plenty of Java news beneath the surface. For example, the keynote began with a screening of the first “Think Different” ad, the black-and-white commercial that first appeared in 1997. “Here’s to the crazy ones, the misfits, the rebels, the troublemakers, the round pegs in a square hole, the ones who see things differently.” Ah, the first Java reference. The ad clearly refers to those still developing in Java on the Mac.
Steve Jobs took the stage and unveiled the latest hardware offerings from Apple. The mouse and keyboard have been redesigned in response to user complaints. The top two professional desktop Macs will ship with a second G4 processor without an increase in price. These multiprocessor machines are designed to get the Mac power user ready to install the soon-to-be-released Mac OS X. The iMac line sports new colors, more power, and aggressive prices. The entry-level iMac (available in Indigo) is a 350 MHz G3 with 64 MB of RAM and a 7.5 GB hard drive for 99. At the other end, the special edition iMac is a 500 MHz G3 with 128 MB of RAM and a 30 GB hard drive for ,499. The final new computer unveiled was the Power Mac’s “Mini-me”: an 8-inch cube with either a 450 or 500 MHz G4 chip.
As Jobs pointed out at JavaOne, Mac OS X will ship with J2SE. Apple is both a hardware and a software company. All that hardware news is good news for Java.; it pushes more consumers to buy machines that will be capable of running the new OS, and hence Java on the Mac. Taken as a whole, the good news is that the implementation of Java 2 in Mac OS X is fast and stable, and that Apple is selling a lot of boxes that can run it. Another indication of Apple’s Java commitment is that the company is adding Java hooks to its existing tools. You can program in Java to access QuickTime, AppleScript, and now WebObjects.
The bad news is that Mac OS X is again delayed. The downside to these delays includes more than just the fact that Java 2 still isn’t available to Mac users. It means that more and more Macs are being sold with Mac OS 9, and the users of these machines will need a compelling reason to spend the time and money to upgrade to the modern OS. As Jobs keeps pointing out, many of the new iMac owners are new to computing — people who will be less likely to upgrade their machines.
Consumers were originally told that Mac OS X would be ready at the beginning of this year. At January’s Macworld San Francisco, Steve Jobs demonstrated Mac OS X and promised delivery this summer. He also explained that Apple would have a “single-OS strategy.” He said that OS X would be available in the summer and would ship preinstalled on all Macs by the beginning of 2001. Apple has since backed off of this position, saying that Mac OS 9 will coexist with Mac OS X for a while and that users will be able to choose which system to have preinstalled.
At May’s Apple Worldwide Developer’s conference, Jobs promised a beta of Mac OS X this summer and the final version in the first quarter of 2001. At the latest Macworld, consumers, hoping to walk off with a beta version of Mac OS X, were disappointed to hear Jobs introduce his demo of the new operating system by saying that the beta version would be available in September.
JavaWorld’s State of Java on the Mac panel discussion
Steve Naroff, Apple’s senior director of Java technologies and core tools, outlined the company’s plans for Java on the Mac at JavaWorld’s State of Java on the Mac panel discussion. He said that Mac OS 9 will not support Java 2, but that Apple will continue to improve the offerings for Java 1.1.8 on that platform. Mac OS X will support Java 2 and will ship with the HotSpot 1.3 virtual machine.
Alan Samuel, Apple’s Java product manager, added that Apple continues to work with browser manufacturers to improve the user experience. Some of the improvements are in applet caching. As an example, he noted that the load time for the Oracle suite has been reduced from forty minutes to one minute.
Naroff pointed out that, as of now, “Java 2 has very little impact on browsers. Most applets continue to be written to the 1.1 codebase.” He adds that Apple continues to improve the Java 2 experience on the Mac and is also “Java-enabling a lot of frameworks, including Cocoa and QuickTime.” In short, Naroff says, “Java is the OO language of choice to do Mac development.”
Although developers want to keep up with the latest offerings, Apple has not pushed for Java 2 support until relatively recently. Naroff explained that now the timing is right. “More and more people are migrating to Java 2. By the time Mac OS X ships next year, there will be many offerings.”
A panel audience member interjected that he worked in a Windows and Mac shop that does its Java development on the Mac. He and his coworkers find that doing Java development on the Mac using CodeWarrior and then moving it over to their Windows boxes is faster that just working on Windows alone.
Naroff said that, although he thinks “Sun oversold the ‘write once, run anywhere’ proposition,” porting working Java applications to the Mac should be much easier under Mac OS X. As an example, he brought up JBuilder, a product whose thousands of Java classes were ported easily to Mac OS X.
Apple has been critical in the past of the Java Community Process (JCP), but it now supports and participates in JCP 2.0. Naroff appreciates that “more industry folks are allowed to contribute … [and] progress is being made in the standards.”
WebObjects
Apple has focused developer attention around WebObjects, the product that Apple CEO Steve Jobs demonstrated at this year’s JavaOne. At Apple’s Worldwide developer’s conference, it was announced that the price of WebObjects would drop from 0,000 to 99, and that WebObjects 5 would be a Java version available by the end of the year. Many of Apple’s core tools are being opened up to Java through Java interfaces to their APIs. WebObjects is being rewritten so that it can be deployed on more platforms.
At the Macworld panel discussion, Ernest Prabakher, Apple’ system software product manager for WebObjects, explained that WebObjects 5 would also include support for EJBs and other pieces of J2EE. Prabakher says that these additions add further support for three-tier architecture, in which developers separate the database from the presentation and business logic layers. Prabakher recommends that business logic be encapsulated in EJBs.
Even though WebObjects is a tool associated with servers, Prabakher said that Apple’s plans are to “use the client VM and tune it and scale it.” This means that Apple will provide a “single Java stack to meet both the client and the server side.” WebObjects 5 will be available for development on the Windows NT, Mac OS X Server, and Mac OS X platforms. The re-engineering ensures that developers can deploy on any platform that supports Java.
Michael Zimmerman, CTO of Zap Business Communications, added that if WebObjects had existed when his company was first developing its products, he and his employees could have saved a lot of time. Zap, headquartered in Hamburg, Germany, began four years ago as a custom publishing house. After developing similar solutions for multiple customers, Zap commercialized its technology. The company currently offers a project management tool called jobworks, a dynamic Web content management system called siteyard, and a communications portal called UCone.
According to Zimmerman, “[We do] about two thirds of our development on a Mac. But even as an Apple-minded company, Zap found it difficult to develop without easy-to-use tools.” He added that even though Metrowerks already offers a good toolset for the Mac, Zap found it easier to develop on Windows machines.
Apple’s new pricing structure motivates Zap to develop additional modules for its products based on WebObjects. Zimmerman plans to send developers to WebObjects training sessions to prepare for future development based on this technology. He notes that “the Java-based 5.0 version will be crucial because it will run on additional platforms like Linux, and supports Zap’s independent platform approach.” According to Zimmerman, Zap staffers find that they can quickly turn products around in response to feedback from users with the company’s current application framework. Under the hood you’ll find Java servlets running on the Mac.
The IDEs of Mac
With Mac OS X, the choices of an integrated development environment (IDE) expand greatly. Three years ago, Roaster was an IDE written in Java. Available only on the Mac, the idea for the now-defunct product was that it would be portable to other platforms and be in a unique position to support the language. Unfortunately for the Roaster, back then Java was slow and didn’t yet support Swing or the current event model. Being a Mac product meant that it wasn’t able to take advantage of the newest versions of Java that were available on other platforms. At the time, Apple kept promising that the lag between the time that new versions of Java were available on Windows and the time that they are available on the Mac would reduce until it was around 60 days. In Roaster’s day, the lag never dipped below one year. Finally, other tool vendors were writing their own VMs for various platforms, including the Mac. This changed a couple of years ago on the Mac when tool vendors and browser companies decided to standardize on Apple’s Macintosh Runtime for Java (MRJ).
With Mac OS X, the Mac has a fast, modern version of Java right out of the box. This means that IDEs written in Java that require Java 2 support can be easily ported to the Mac. At Apple’s Worldwide Developer’s Conference in May, there was a demo of Inprise’s JBuilder IDE running on Mac OS X. JBuilder is an application with thousands of classes that, according to Apple’s Naroff, was ported quickly using the existing JBuilder distribution verbatim — without modification or involvement from Inprise! JBuilder provides a great stress test for the Mac OS X JVM. It also shows that “write once, run anywhere” is possible. Since then, Inprise has announced that it will formally offer a version of JBuilder for Mac OS X.
In recent years the Java IDE of choice for the Mac has been Metrowerks’ CodeWarrior. Luis Quiroga, Metrowerks’ product marketing manager, said that Metrowerks still has mindshare on the Mac. Although CodeWarrior will continue to provide Java tools for the embedded, small-device, and desktop markets, its current strength for the Mac market is in helping developers create applications for Mac OS X. Products from Adobe, Microsoft Office, Symantec’s Norton Utilities, Corel’s KnockOut and CorelDraw, and Aladdin’s Stuffit Deluxe family are being developed for the Mac using CodeWarrior.
Quiroga said that CodeWarrior Pro 6 will be available on September 1. He sees advantages in the fact that his company’s product is not written in Java. “It is more stable and doesn’t crash while providing full Java 2 support,” he said. Further, Quiroga said that debugging, including remote debugging, has been greatly improved; the RAD tools are also more stable, and this version includes improvements to the object manager and object inspector.
Metrowerks will release another Java-only version of CodeWarrior in October. In addition, the company has created a Learning Edition for 9 in response to requests from the academic market. This is a simpler, stripped-down version of CodeWarrior designed specifically for students.
Conclusion
Once again, the future looks great for Mac Java developers. The news from this summer’s Macworld is that the hardware support is here. Performance on the Mac machines is solid. At the consumer end, Apple now offers affordable iMacs for an audience of new users interested in getting on the Internet. The high-end machines now ship with two G4 processors. Once Mac OS X is released and can take advantage of these machines, the pro user experience will dramatically improve.
Right now, most of what we hear begins with the phrase “When Mac OS X is released.” As we’ve seen, the Mac OS X release date keeps getting pushed back. This is the one area where Jobs’s “under-promise, over-deliver” strategy has failed. The beta is currently scheduled to be released in September. The promise in May was that the Mac OS X beta would be released this summer. Apple never said the release date would be tied to the July Macworld Expo — we just hoped that it would be. Delays aside, Apple has put together a solid engineering team that has dedicated itself to providing a great Java experience on the Mac. If you can’t wait for the public releases, you can join the Apple Developer Connection and receive developer’s previews.
Picture yourself developing Java 2 applications on your fast G4 multiprocessor Mac, using a brand-new operating system with J2SE built in, along with the HotSpot 1.3 VM, great graphics, protected memory, and symmetric multiprocessing. Today, developing Java applications on the Mac means rebooting every couple of compiles or using last year’s Java release while surfing Sun’s site and looking at the products available for your friends with Windows boxes. It means waiting until someone posts a hack to get some of the extra Java packages actually working on your Mac. It means explaining to users why applets don’t work right or load in a reasonable time on Netscape on the Mac. However, with Mac OS X, even Java developers will be able to “think different.”