Tuesday, November 27, 2007

Working Java 6 on Mac OS X - but not from Apple

Turns out there's a working Java 6 for both Mac OS X Tiger and Leopard. It is a port of the Java Research License licensed codebase for BSD, so to use it legally, you need to agree to JRL first. It's developed by a person named Landon Fuller, and he says on the page:

The Mac OS X work is based heavily on the BSD Java port, which is licensed under the JRL. The BSDs develop Java under the JRL; FreeBSD has negotiated a license with Sun to distribute FreeBSD Java binaries based on the JRL sources.

As the Mac port stabilizes, I am merging my work upstream into the BSD port, and in turn, it is a goal of the FreeBSD Java project to merge their work into OpenJDK. I've signed a Sun Contributor Agreement in preparation for this...

There are some minor features lacking (minor if you're like me, using Java for server side): sound doesn't work yet, nor is there a native Aqua Swing UI.

Via Charlie Nutter (who also perftested it with JRuby and sounds quite impressed).


Anonymous said...

Having something that plausibly works is not sufficient. The things that is it missing perfectly underscore why Apple needs to deliver Java 6 themselves (and perhaps, why Apple is so consistently late).

This is not news: any seasoned developer could get open source (particularly BSD source) to build on the Mac, even with a UI, albeit X11. This open source project is missing integration with the OS—not just sound (aka anything hardware-related), but the whole friggin' native Aqua UI experience. No drag and drop. No copy or paste. No printing. Plus, it's two steps behind Sun, being a branch from BSD which in turn is a branch from the real thing. And then account for the fact that it's not yet remotely optimized for OS X. So, woo hoo that it's here, but boo hoo, what we really need is NOT here.

What we really need is a Java that is integrated with the OS, is optimized, and that is at worst one step, not two steps, behind Sun and Apple. And there's only one company that can deliver that. This community project is a consequence of Apple being unable to deliver, but it's not the solution.

This project will have the right attention for a couple of years by which time it will have the right level of integration and be fully caught up with Java 6. Just in time for Java 7 and OS X 10.6 to blow all that goodness away. And we will be here wondering, "what the $&#^@ just happened?"

The right thing to do is to figure out how to harness this energy to help Apple deliver Java 6 in a more timely manner, not compete with Apple for the prize, because such a goal will ultimately fail.

Anonymous said...

Dear anonymous.

If any developer could have done it, why did it take so long for someone to do it? I think you either don't understand, or grossly underestimate, the complexity of Java. It's insinuated with the underlying architecture and operating system, and Hotspot is an incredibly complicated piece of code-generating code.

Anyway, it sounds like this code is going to be merged into OpenJDK, too.