WWDC Fires Up Java on Mac OS X
by Daniel H. Steinberg06/01/2001
It's just before 10 a.m. and a cello plays while a welcoming fire roars in the fireplace in the warmly lit library. Just to the left of this comforting video scene is a lectern holding the water bottles Steve Jobs will return to throughout his fireside chat at this year's Apple WWDC. To the right, nine Macs are set for demos. Above the stage hang two oversized Apple logos and on either side "think different" images of Picasso and Richard Feynman. The doors open and attendees sprint to the front of the auditorium -- shades of general admission rock concerts from many years ago.
Without any introduction, Steve Jobs walks onstage holding a Mac OS X box. He begins by saying how glad he is not to be talking about some future OS but about the currently shipping Mac OS X. He smiles and explains that he's been back at Apple for almost four years and that the "biggest reason I came [back] was I didn't want to use Windows for the rest of my life."
This is a great day for me. This is both my first WWDC and the launch of the new Java Column for O'Reilly's Mac DevCenter. I'm looking forward to this column as it's been such a great year for Java on the Mac and there's plenty to write about. That hasn't always been the case. I've covered Java on the Mac for five years. For most of that time, it's been a lonely beat. The big difference, of course, is the Java support in Mac OS X. During this morning's keynote, Jobs noted that Mac OS X has the full Java 2 stack and that it was probably the best implementation on the desktop.
The "bad old days" of Java on a Mac
In the early years, the Java implementation on the Mac trailed the Windows implementation by at least a year. At each Macworld the current Java product manager would explain that the situation was getting better and that their goal was to have the latest version of Java running on the Mac within 90 days of it running on Windows. At Steve Jobs first Macworld keynote after returning to Apple, he included Java support as one of his five goals.
And then for several years there was a great silence.
|
|
Oh sure, we had a release or two to give us something to play with (although the numbering system tended to be a little confusing). We were finally able to get Swing to work. We enjoyed the benefits of a single VM (virtual machine) on the Mac. We even found that sometimes "run anywhere" meant that our favorite apps and applets could run on a Mac. On the other hand, they never seemed to look quite right.
These changes weren't really minor. For years we had struggled with multiple VMs and tools that were primitive compared to those our colleagues could run on their development machines. The Mac just wasn't a good machine for developing or running Java applications. To be fair, the Java story had changed. Java was no longer about applets and client applications. Sun was pushing the enterprise and network advantages of Java. Neither of these were central to Apple's story. On the other hand, educators were still writing and using applets and Java applications and this core Apple market couldn't run them.
And then the skies cleared.
Java on the Mac rises from the ashes
In his keynote at Macworld San Francisco in January 2000, Steve Jobs announced Apple would be pursuing a single OS strategy. Not long after Mac OS X was released, Apple would begin to phase out the older OS (he's since backed off of this statement). This allowed Apple's Java team to make some announcements of their own. If Mac OS 9 was going away, then they could safely say that they would never support Java 2 on classic Mac. Apple would continue to improve the product, but there would be no reason to rev it.
And then they dropped the bomb. When Mac OS X shipped, Java 2 SE would be included. It was an amazing moment. I was moderating a panel on the state of Java on the Mac when they made this announcement. I'd talked to audience members beforehand and many had come to beat Apple up about their lack of Java 2 support.
In fact, I'd moderated this panel at other Macworld Expos and Apple's Java team would show the results of their hard work and then have to listen to audience questions and comments most of which had been addressed on the MRJ (Macintosh Runtime for Java) list. In any case, once the Java engineers announced that the entire Java 2 SE stack would be shipped with Mac OS X there was nothing much for the audience to complain about. The engineers went further and said that they were aiming to release Java 2 version 1.3.
At the May 2000 WWDC, there were more announcements and demos. Borland (then known as Inprise: the company formerly known as Borland) did a demo of JBuilder on Mac OS X. Three years earlier, Roaster had tried to make this idea work. They wanted to take a good Integrated Development Enviroment (IDE) and write it in Java. This would allow the same codebase to be run on different VMs running on top of different OSs.
Unfortunately, Java wasn't mature enough at the time and Roaster wasn't ready. In the year since last year's demo, the Borland folks have continued to work hard with Apple engineers to make sure that JBuilder will soon be ready for Mac OS X. Borland's Blake Stone did a demonstration of JBuilder at the Java panel at this past January's Macworld Expo San Francisco.
So far, Apple's Java announcements were being made to the Mac faithful. Apple realized it was time to bring the Java on the Mac story to the Java audience. In June 2000, Steve Jobs joined Sun CEO Scott McNeally at the JavaOne keynote. McNeally introduced Jobs as a big inspiration and said that his family used the Mac and that he was glad that Apple was finally committing to first-class Java support on the Mac. Jobs replied that Sun had been too busy putting Java into lightbulbs. Jobs then invited Tevanian to join him onstage to show 20,000 Java developers what Java looks like running on Mac OS X.
Now Mac OS X is out. Sure, some have called this public beta 2. But the support for Java 2 is impressive. You can write impressive Aqua applications in Java, or you can port existing Java applications easily to Mac OS X. As of this morning, Mac OS X will ship with every new Mac. The install base of computers that support your Java applications will explode. This morning Jobs announced that by the end of the year Apple will be the largest Unix supplier.
I've had some complaints about developing on and using the Mac in the past. I'm sure I'll have some issues in the future and I won't hesitate to write about these concerns. But for now, I feel like a kid in a candy store. Feel free to drop me a line and let me know what topics you'd like covered in future articles. In the meantime, check out the performance of Java 2 on Mac OS X. You'll love the hardware-accelerated Swing and performance gains. I've written elsewhere about improvements to the garbage collector that Apple has implemented and that Sun plans to roll back into the general release.
Daniel H. Steinberg is the editor for the new series of Mac Developer titles for the Pragmatic Programmers. He writes feature articles for Apple's ADC web site and is a regular contributor to Mac Devcenter. He has presented at Apple's Worldwide Developer Conference, MacWorld, MacHack and other Mac developer conferences.
Return to the Mac DevCenter.
Showing messages 1 through 5 of 5.
-
Java, ObjC - Quite Similar
2001-06-11 04:56:24 monyschuk [View]
-
How does java compare to Objective-C
2001-06-10 13:32:17 e:)s [View]
I'm new into programming languages - or programming in general. Scripting Filemaker is as close as it gets for me. But I want to change all that the comming weeks, now that I have a summer holiday comming up and this brave new Mac on my desk.
So far I found out from various websites (like this one) that programming in either Java or Cocoa would be the best way for me to get up-to-date 'quickly' with developing on the Mac. Since I prefer being able to develop web-applications and cross-platform applications, I consider Java the most interesting option for me.
However, what is not clear for me is this: what is the mayor difference between Java and opbjective-C in power from the programmers point of view? I assume they both have their respective adventages and drawbacks, but I can't find out what they are!
I know Objective C stems from some 'ancient' structural language and that Java has been more modern and Object Oriented from the start. But how do they ultimately compare?
Anybody willing to share their insights?
-
Some small problems
2001-06-05 15:21:28 fivefifty [View]
I've noticed some small problems with Java (ignoring the bad browser support), Internal Frames lack drop shadows, and constantly flash while being moved. Yes, this is minor, but can be annoying.
Oh, if you want to see something neat try minimizing an aqua internal frame. It'll drop down into a sub dock within the frame, including the representing image.
-
My small dabble
2001-06-05 02:10:25 pengo [View]
I noticed right off the bat, OSX does a great job in managing the JVM/Classpath etc. The average user finds this as sort of a daunting task and can in a lot of cases be a huge barrier to entry for Java based applications to the desktop.
In OSX it's neat, the application icon to the user is really a folder that holds various bits including all your java files and even libraries etc. They never even KNOW it's a java application. It's a bit more work to do that on Linux or even Windows without using a install-generator, etc.
I also noticed that the performance was exceptable, and in some cases as good as simple code I was hacking out in Objective C. (OSX's overall responsiveness (lack of) doesn't really give much to compare too though). :)
I would say that Java on Apple is definately a hit. I am very anxous for a good book to come out on programming Cocoa on Java (hopefully from O'Reilly) so that I can dig deeper into it.
.mark
-
From the worst to the best in one OS!
2001-06-04 23:21:06 mrbomb [View]
I'm really elated that the best Java finally will run on a top notch OS! And it's not just JBuilder that will be featured on Mac OS X. NetBeans is currently being ported too as well as some others. Since JavaOne is on this week, I hope Apple does the following:
1. Get the word out about Java on Mac OS X (My guess is the IDE market is about to get real "crowded"!.
2. Announce plans to port J2EE.
3. Give a release date on J2SE 1.4










Java's great particularly for cross-platform development - you can write a single app and compile it for a number of platforms (with Mac OS X currently being the best :-).
Objective C is worth learning too. In some ways it's less forgiving that Java, but in others it's more flexible and arguably more readable. Anyhow, once you've learned one, the other is probably a day or so of extra learning away.
Mark