Summary
Apple's lack of JDK 6 support on its latest Mac OS operating system disappointed many Java developers. Eric Burke writes that all is not lost, however, if the past is any indication of the future.
Advertisement
Apple's omission of JDK 6 from its latest OS update disappointed many Java developers. Mac OS X has become a preferred OS for many Java developers in recent years, due in part to its Unix-like environment and to Apple's commitment to produce high quality JDK implementations for its computers.
In the latest version of its OS X operating system, Leopard, Apple delivered many enhancements to its currently supported version of JDK 5, including 64-bit Intel CPU support, a refreshed Swing Aqua Look and Feel, improved SWT interoperability, and a Sun 2D graphics pipeline.
Still, what the new OS update did not include—a version of JDK 6—overshadowed these improvements. Some, such as James Gosling, went so far as to proclaim that they no longer carry a Mac as their primary system (Gosling switched to a Solaris laptop). Others suggested that having JDK 6 support on the Mac is not all that important, after all. Kirill Grouchnikov, for example, noted the Mac's still tiny market share, even among Java developers.
At some point, however, Apple will make a version of JDK 6 available for its latest OS. And that may happen sooner, rather than later, according Eric Burke who put together a timeline of Apple's past JDK releases vis-a-vis its OS releases, noting that new JDKs become available shortly after a new OS version is released. The timeline can be found at OS X Java Definitive Timeline. Burke comments, for instance, that:
This philosophy (keeping JDK and OS releases in sync) gives Apple a huge advantage because they have far fewer backwards compatibility issues to worry about. Each major JDK release can be optimized to take advantage of the very latest OS X features and optimizations. Windows and Linux JDKs do not have this luxury. When Sun releases new JDKs, they must support a wide variety of Windows and Linux OS releases, including 32 and 64 bit versions. The term “least common denominator” comes to mind, and not in a good way.
Striking a balance between backwards compatibility versus moving to new technology is a classic engineering trade-off. Apple chooses to move away from older technologies at a relatively fast pace, while Sun tends to be more conservative in its support of older operating system versions. Each has its pros and cons, but for now, this is what we are given.
Anyone wanting a faster JDK release cycle on OS X will have to look to someone other than Apple to give it to them.
How important is JDK 6 support on Mac OS X for you? What do you think of the Mac as a Java development platform?
Lack of Java 6 is a major problem because people are rolling out generic software requiring it.
I already have seen one utility for a broad community which had to be rolled back and re-released so it could be run on the Mac with Java 5. In this case the publicity around the revision would have given several thousand end users, including some pretty influential people, the impression that Apple was failing to keep up with standards.
The decision to do a revision came after a national educational tour showing people how to use grid computing, where the Mac users were the only ones having to use a command-line utility for file transfer.
Here's the problem. Why should we sit here and speculate and guess and deduce what may or may not happen based on past behavior?
It's pure nonsense and it's not acceptable.
Apple needs make a very clear, very loud, very public statement about Java. Either they support it, or they do not. If they support it, then put some kind of estimated timeline. They don't have to hold to the timeline 100%, but at least keep it up to date. So if the estimates change, keep people up to date.
Apple needs to be stop censoring what goes on their forums. I hear they delete any posts about Java 6. I haven't personally verified this, but considering how often I've heard of Apple removing various legitimate topics from their forums, it's a troubling thing. It seems that Apple is more concerned with perception management than with truth. Ultimately that strategy is bound to fail, because people will find the truth and then Apple will be known as a liar.
I'm not saying that Apple must support Java. Apple can do what they like. But they MUST keep their customers well informed and they must not remove any topics from the forums unless they contain X-rated language or death threats or something like that.
Personally I think if Apple ever gets into the same position as Microsoft, they will be even worse of a proprietary plague than Microsoft ever was/is. Apple is only open when it suits them, but loves to close up as much as it can. Apple is not committed to openness.
I second Leo on this. I've decided not to upgrade to Leopard, though I don't feel like I miss Java 6 a lot, the software we are developing should support Java 5, anyway. But there are voices that Java 5 itself is broken in this release (see http://www.javalobby.org/java/forums/t102936.html for details).
Personally, my biggest concern is more about what the present may say about the future. 1.6 is a fairly minor upgrade of Java. 1.7 is going to contain some major changes in the language and libraries, of which one of the latter will make a really significant difference in an application that I am working on.
I just read someone claiming that 1.5 isn't even stable on their Leopard install.
Combining this with some dismissive statements about Java made publicly by Steve Jobs recently, I find it concerning. It almost seems like Apples recent spate of success has gone to it's head.
> Combining this with some dismissive statements about Java > made publicly by Steve Jobs recently, I find it > concerning. It almost seems like Apples recent spate of > success has gone to it's head.
So are you saying that Apple used to be humble and straightforward in the past?
It's a rhetorical question. I am not looking for an answer.
> So are you saying that Apple used to be humble and > straightforward in the past?
No but it's a fair question. I think improved Java desktop support would be a good thing for the Mac in the long-term. The only good reason to use Java for desktop apps is to support the three major desktops environments in (roughly) one stroke. By not supporting the new versions promptly, they essentially keep desktop Java at version 1.5 (and that's even in question). IMO this is against Apple's own interests.
What I meant above is that Apple has won a few battles and they are acting like they won the war. The reality is that if the Mac is ever going to be more than just the OS for people who are allergic to suits, it's going to need more people writing software for it. And Java has the potential to make that a more appealing to software vendors/authors. Whether it will realize that potential is questionable but it seems stupid for Apple to hamstring Java on the desktop.
> I just read someone claiming that 1.5 isn't even stable on > their Leopard install. > I saw this on Tim Bray's site (a link, not a statement by him); he had a link to a response that the OP was full of bull stuff. TB took that as true.
> > I just read someone claiming that 1.5 isn't even stable > on > > their Leopard install. > > > I saw this on Tim Bray's site (a link, not a statement by > him); he had a link to a response that the OP was full of > bull stuff. TB took that as true.
Well this was just some poster on another forum. I don't have any way of knowing whether it's true but I find it interesting that it's being claimed by more than one person.
If it's true, it's worse than 1.6 not being supported as 1.5 is the 'official' supported version of Java on leopard.
> The reality is > that if the Mac is ever going to be more than just the OS > for people who are allergic to suits, it's going to need > more people writing software for it. And Java has the > potential to make that a more appealing to software > vendors/authors.
In the scientific world, a LOT of software is written with Java as a GUI, to pick a suit allergic domain who already need Java 6.
I have a little consumer Java app (http://www.beatunes.com/) out in the open and for a number of reasons it's actually more popular on the Mac than it is on Windows. In essence, this means that as long as there is no Java 6 support on Tiger systems, I won't be able to move to Java 6, which is a shame. Why move to Java 6 at all? For a consumer desktop app Java 6 has a couple of things to offer: - Splash screen (this is actually important if your app needs a couple of seconds to start - and which Java app doesn't?) - Sortable tables (can you believe we had to handcode this kind of stuff until Java 6?) - Usable drag and drop with insert drop mode (see http://weblogs.java.net/blog/shan_man/archive/2006/01/first_class_dra.html) These points may seem not-so-important, but keep in mind that on the Mac you are competing with "deliciuous-generation"-style, eye-candy software (http://www.wired.com/software/coolapps/news/2007/06/core_anim). Every little bit that makes developing good-looking apps easier is welcome and important. Every minute that you have to spend on your Java app to make it look at least acceptable, is a wasted minute, since you can have that for free, if you had chosen to implement your app in Objective-C. And trust me, it's not minutes... Chet Haase's animations library (http://www.artima.com/forums/flat.jsp?forum=276&thread=217780) is great and I really appreciate the Filthy Rich Clients book, but competing with the very polished native OS X API's is still very hard. And with Leopard's Core Animations (http://arstechnica.com/reviews/os/mac-os-x-10-5.ars/8#ca-in-cocoa), it just got a whole lot harder. All in all, I think that Java 6 is much needed to write consumer apps - and consumer apps are what's running on Macs these days. But even once Java 6 is out on the Mac, Java apps still won't be first class citizens. Someone (hopefully Apple) needs to really polish the Java Aqua Look&Feel to let it compete with native apps. They did a big step in the right direction with the new Java 5 release for Leopard - it lets you manipulate the L&F through Swing's client properties (e.g. you can now have a circular, indeterminate progress"bar"). And yes, it even displays the correct icons in standard dialogs (http://weblogs.java.net/blog/javaben/). But I doubt it's all the way there yet. That said and to end this on a positive note, OS X is still one of the easiest platforms to deploy Java desktop apps to.
The problem I see is that if developers want to target Vista and Mac OS X with their products, they need to make two different builds: a Java 6 one to run properly on Vista (as I hear Java 5 shows a few glitches with Microsoft's latest OS) and a Java 5 one to run on Leopard. This is really a shame.
Otherwise, I can't see any Java 6 feature that would make it mandatory for whatever I develop right now, so I don't really mind developing in Java 5 instead of 6.