Musings about Java on the Mac

I’ve been on the front line of using Mac OS Java for grand scale software deployment for a few years now and my general feeling about the whole thing is…

It would be best if Sun and Apple terminated their agreement to co-develop Java

I would greatly prefer it if Sun took it over and managed the release cycle along with the Windows and Linux platforms. And what’s more, that they distributed it in the same manner as well, and gave us the same sorts of options that we have on Windows/Linux (that is, the ability to embed, and now chop up, the JVM).

Cas :slight_smile:

Abso-friggin-lutely! Apple has done a great job technically on their VM, but let’s be honest - their heart is not in it anymore, and they are almost pathetically unresponsive about bug fixes and the like (ever tried to do something nuts like, oh, say open a menu with more than a half dozen items on a Java program using a recent Apple VM? That system hang that results was reported over a year ago and is still unfixed, and it makes a lot of Java apps all but unusable on Leopard).

Since Apple has essentially deprecated the Java Cocoa bindings I don’t see any reason for them to play with the JVM any longer.

[quote]Don’t quote me on it, but I was told that the Java team at Apple numbered something like 3 people. It’s not that they don’t listen - they’re unrealistically understaffed.
[/quote]
Yeah, if that’s true it really wouldn’t surprise me. It’s not that they do a bad job on what they do, it’s just that this is clearly (painfully so) not a core business concern for Apple, so they don’t throw very much at it.

The write-once-run-anywhere nature of Java would be greatly improved if we at least had the same bugs on Windows and OS X, which is a clear point in favor of Sun taking over. Though to be honest, I’m not sure if Sun has enough resources allocated to desktop Java to take on another OS…I’ve always had the sense that their JVM team is pretty understaffed as well…

Yeah I get tired of wanting to update my JDK and so I go to Sun’s site and they say “use software update.” And there are no new updates. Wasn’t I supposed to get Java 6? Guess not.

I has been wondering about this actually. The Apple Java team is directly responding to posts in their mailing list, but considering the things they need to do they seem to be criminally understaffed.

They do a great job - it’s a shame that their work is hampered by the strange distribution agreements Sun and Apple got into.

Cas :slight_smile:

I’m not sure that if Sun would do the OS X port themselves it would be better. The Swing look-in-feel looks great, unlike nearly all made by Sun (the appearance of the combobox was broken in Linux for nearly 1,5 years for example). Also, they provide ways of interaction with a number of OS X specific services such as the keychain, application menu and AppleScript. And the documentation is also quite ok, with a number of articles available on how to make your applications fit in more with the rest of the platform.

So, I think that the only downside is that they are incredibly slow, but I fear if Sun developed this port it would be a lot worse in quality. In fact, it seems that originally Sun did the OS X port as well and it was incredibly bad (although I was into neither Java nor Macs at the time so I heard this only from others).

The combo box seems to work just fine here, can you elaborate?

as far as sun stepping in, I don’t know; considering that they are sacking almost 1 in every 5 of their employees.

http://bugs.sun.com/view_bug.do?bug_id=6624717

That get’s my vote! There’s not even a road map for Java under OSX. Java 1.6 is what, almost 2 years old now (3 since beta?), and it’s still not the dafault JVM on OSX. So how long for update 10… and then we can talk about the fullscreen and 32/64bit issues. Lets face it, Java competes with objective-c and that’s where Apples priorities lie. I switched to a Mac only in the last 18months, so I don’t know the history of Java on OSX, but I have read somewhere an quote from Steve that he was going to make OSX The platform of choice for Java developers. That’s quite a joke these days. In fact it’s embarassing to mention Java under many OSX forums.

Having said that Sun is doing nothing to help themselves with Java. So much potential just wasted over the years. The joke called bug-parade, the failings of applets, half completed webstart, half completed lots of things, and too much focus on new features that no body wants! So in some ways I can understand Apple’s reluctance to invest in the technology, and I’m not convinced Sun would manage a better job under OSX. But at least the versions would be in sync, and that’s a major hurdle for deployments, especially with the growing OSX market share.

I’ve been a Java developer since early '96, and this lack of consistency across operating systems has been the achillis-heal of Java that whole time, and I’m not just talking about Browser JVM’s & Applets, but also Desktop and Server side development. No wonder flash is doing so well.

Java - Write Once Test Everywhere, especially under OSX!

Sorry for the rant, but I guess I just another of the growing number of frustrated Java developers, and being on a Mac only rubs salt in the wounds.

Peter

Don’t stay frustrated, maybe the OpenJDK will solve the problem one day ;D (I hope)

And Java makes Objective-C look pretty bad, sadly.

I think the problem is either that, or that Eclipse makes XCode look really really really bad.

If people start using java on OS X, they’ll start using Eclipse (or NetBeans, or IntelliJ), and then Apple will get in a lot of trouble, as their loyal developers stage a mass rebellion over the fact that XCode is a highly integrated but 10-years-behind-the-curve IDE - it’s a beautifully polished turd.

“Re-factoring? Is that some kind of arithmetic?”
* blahblahblahh is currently doing iPhone development and weeping over the fact he’s not allowed to use a decent IDE :(.

NB: if i had never used Eclipse, I might love Xcode. The integration with the system and the docs etc is good. But if just FAILs on basic stuff - like yesterday when I found that - officially - changes made in the GUI builder are only saved to the source code the first time, because their IDE isn’t good enough to allow you to make more than one save to source (they only overwrite source, they apparently dont’ keep an AST representation in memory - which puts the IDE firmly in the early 1990’s).

I think it’s the latter, from what I can tell. There’s nothing wrong with Objective C as a language, and in fact, most of the people that I know that have done reasonable amounts of both Java and Objective C tend to strongly prefer Objective C, but even they admit that XCode is a mess.

Though from my experience, the libraries for doing just about anything in Objective C (er, at least on OS X using Cocoa, and let’s be honest, nobody uses Objective C for anything else even though it’s possible in theory) are flimsy and slim if you’re used to the equivalents in Java or even Python or Ruby. Even worse, it’s tricky to find the information at all on Google because of the low volume of discussion. StackOverflow is starting to help there, but that’s pretty young, so it’s not a panacea.

I gave up on Interface Builder after I tried to follow some of the most basic iPhone tutorials on using it and found that they just didn’t work. Something about the way it connects code to the interface you’ve laid out is flat out broken (maybe I ran into the problem you mention, I’m not sure - I never went back!), and for games I decided that it was easy enough to just arrange my stuff in code since my interfaces tend to be really light (basically just a menu screen).

It’s a shame, because it looks like there’s a lot of power in the program, and for non-game applications it probably cuts development time by a healthy margin, but with bugs features like that, who wants to use it? Not me…

I’m sure OpenJDK will solve this issue. There is already an OpenJDK 7 port to Darwin and although not in a “finished stable” state, i’m sure it is just a matter of time.

I’m not so sure that will help anything very soon, though - the main thing that Java on OS X has going for it is that it comes built in, so even if OpenJDK eventually works better or more consistently than Apple’s implementation Apple would still have to decide to include a version based on that by default rather than their own. This is certainly possible, as Apple generally likes depending on open source stuff, but they usually do it in a years-after-the-fact, several-versions-old and heavily modified manner (see their X11 dependency, which is one of the more bizarre ones - they officially acknowledge that their included version is somewhat broken and recommend that XQuartz is what people should look to for improvements, and also that the future of X11 on the platform lies with that project, but for whatever reason they are slow to bring any changes into the OS itself by default).

The point of OpenJDK is that I could bundle it in my .zips, not have to rely on it being pre-installed.

Unfortunately that OpenJDK is only for 10.5 which sort of defeats the point. I need one that works from 10.3+.

Cas :slight_smile:

Isn’t 10.3 a bit extreme? As I remember it was used from 2002/2003 to early 2005, which makes it 3,5 years since it was replaced. From what I see around me Mac users tend to update to the new version of OS X fairly quickly, as software support for the old version starts to fall dramatically.

From the presentation of your games I would say that you’re not targeting the “I only use my PC for internet and email and instant messaging” sort of person. Obviously, you don’t want to lose potential buyers, but I would say that having 10.4 (and Java 5, for that matter) as minimum requirements would be reasonable.

Yet, you probably have statistics on this and probably will reply that 20% or so of your buyers have 10.3, I ALWAYS guess these sort of things wrong :slight_smile:

Not quite 20% more like 10%, but yes, still a lot of 10.3’s about this year. I expect next year there will be less of them.

I’d like to know who the one guy was running Mac OS X 10.6 though :slight_smile:

Cas :slight_smile: