Skip to content

You Should Be Excited About Java on Mac

3
Dec
2007

I realize the very last thing I said about Java on the Mac was extremely negative, and I think that still holds.  Apple screwed up, big time.  What I’m talking about is a grass-roots effort to port Sun’s FreeBSD version of Java 6 over to MacOS X.  I’m talking about SoyLatte.

For those of you playing catch-up, SoyLatte was started by a bright guy named Landon Fuller with the expressed purpose of providing a Java 6 implementation for MacOS X 10.5 (Leopard).  It does this by availing itself of Mac’s BSD roots.  Because Darwin is basically a fork of the FreeBSD kernel, many BSD-based application can be easily ported to run in some form on MacOS X.  Sometimes all it takes is a recompilation linking against different libraries.  Obviously a full blown JVM is quite a bit more complicated than GNUChess, but the principle is the same.

The key phrase here is “run in some form”.  Mac applications are legendary for integration, sophistication and smoothness.  I have to admit that this reputation is well merited.  As a credit to Apple’s work on its (now outdated) JVM, this integration even extends to many applications written in Java.  Swing applications on Mac look native (because they’re using native Cocoa widgets, even more native than SWT’s Carbon implementation).  Java applications are also fully AppleScriptable, have access to core services like the application menu, services, file associations, the dock; the list just goes on and on.  This kind of tight integration is exactly what James Gosling was talking about when he said that Apple wanted to do the Java port on Mac themselves.  This kind of tight integration is very difficult for third-parties to accomplish.

Just to choose a comparatively trivial example, consider Swing (I did say comparatively).  Swing/AWT on Mac is peered by Cocoa and extremely performant, a trick that Sun failed to turn on Windows for half a dozen releases (partially succeeding in Java 6).  Swing/AWT on FreeBSD is backed by X11 and can be pseudo-peered using GTK+ widgets.  Now Apple does have a version of X11 bundled with MacOS X, and GTK applications do appear passably Mac-ish, but it’s still not the environment to which Mac users are accustomed.  Even solving this non-blocker issue will require thousands of man-hours and some really clever engineering.

But the point is: it’s happening.  There’s so much momentum behind this project it’s unbelievable.  LandonF is rapidly becoming the equivalent of a blogger household name (think “DHH”), and people are practically lining up to get in on the action.  Now I honestly don’t know how much contributor interest the project is seeing - there are quite a few hoops to jump through - but I know the attention from the community has been staggering.  It’s enough to make me want to buy a Mac just to help out.  :-)

What we’re seeing is virtually unprecedented.  The open-source community is taking a version of Java and independently porting it to another operating system.  Yes in the past we’ve seen projects like GNU Classpath and Harmony which have done clean-room Java implementations, but that’s a totally different problem.  Neither GNU Classpath or Harmony are JCK certified, which means that they’re technically not “Java”.  If Landon and company succeed in getting the FreeBSD Java 6 fully ported to Mac, they probably won’t face this issue.  Because it’s basically Sun’s implementation, and thanks to the new community control over the JCK certification process, SoyLatte could be the first third-party Java distribution to actually be “Java”.  This makes it a viable alternative for developers and (more importantly) big companies which are gun-shy on third-party ports.

So this is an incredibly exciting piece of work.  SoyLatte may be one of the most significant open-source projects in the last few years, and we’re seeing it unfold right before our eyes.  If you have a Mac and any extensive knowledge of Java, you should really consider helping out.  Here’s your chance to do something really significant for the future of Java on one of the most rapidly growing platforms on the market.  Those of us on the sidelines can only sit cheer, marveling and history in the making and admiring the power of the community.

SWT Cocoa Call for Volunteers

17
Nov
2007

Steve Northover (father of SWT) posted today on his blog news that the SWT team was looking for help with the SWT Cocoa port.  As far as I know, they’ve been working on this for about two weeks, and they’ve already managed to get Eclipse to start - but only through the use of not-so-subtle hackery.

Unfortunately for us (the unwary users), Steve says that they’ve run out of time to work on the Cocoa port, given the pace of the 3.4 stream and its rapidly approaching feature freeze (only a few months away).  A Cocoa port of SWT is something that would benefit everyone, but most especially those who use Eclipse on Mac.  At the risk of sounding melodramatic, it’s probably the most important SWT effort currently in progress.  Apple’s been pretty clear that Cocoa is the future of UI on the Mac.  Most pundits agree that if Carbon isn’t gone in the next MacOS X release, it certainly will be in the one after that.  It is absolutely vital to the future of Eclipse that this port is carried through at the highest caliber.

So, if you’re an Objective-C maven, or just want to help out on a very interesting project, ring up the developers on the platform-swt-dev mailing-list.  I’d help out myself, but I know nothing about Objective-C.  SWT’s a great project to contribute to, even if you don’t completely agree with its purpose.  May the hacking begin!

Would you Pay for Java on Leopard?

1
Nov
2007

I don’t normally do this, but I think this is interesting enough to be worth a cross-post.  Jonathan Locke (originator of the Wicket framework) has proposed two polls basically asking the question: Would you pay Sun for a port of Java 6 on OS X, and if so, how much?

Personally, I think it’s an interesting question.  Probably half of the opinions I’ve seen about the state (or lack thereof) of Java on Leopard have ended with railing against Sun for not handling Java on that OS itself.  Of course, James Gosling already officially debunked why Sun isn’t handling Java on Mac (Apple wanted to do it), but that doesn’t stop people from spreading the FUD that Sun is just being lazy.

The fact remains though that Apple has really dropped the ball on this one.  Whether Jobs likes it or not, Java is a relevant force in computing today, and no mainstream OS is complete without a working JVM.  Despite this fact, Apple has given no indication that it is even interested in releasing Java 6 for Leopard, nor does it seem to care that Java 5 doesn’t work properly.  Given these facts, it only makes sense that someone else will need to step forward and carry the torch of Java on Mac.  Who better than Sun?

But the million dollar question here (well, not quite that much) is how much would you be willing to pay for Sun (or any other company for that matter) to port Java 6 to MacOS X?  $50?  $99?  Cast your vote on the polls below:

Apple Blows Another Great Opportunity

27
Oct
2007

I hate to be yet another blogger taking a potshot at Apple in the wake of the Leopard release, but I just have to say it: Apple, WTF are you thinking?!  There, I said it, now we can be rational about things.

For those of you living in very cramped fox-holes for the past two years, MacOS X 10.5 (Leopard) is Apple’s latest incarnation of the cult-classic OS, MacOS X.  It’s got multiple workspaces, file system versioning, read-only ZFS support and eye-twisting shadows which make your desktop look about half a mile thick.  It’s got a totally redesigned Finder (which coincidentally looks just like iTunes) and added eye candy for both the Dock and the menu bar.  What it doesn’t have is Java 6.

Sun released Java 6 back in what, last November?  Apple’s had quite a while to get their act in gear and bring the latest major release to the table.  In fact, they’ve had even longer than a year, since Java 6 was in open development long before its release.  Apple did release a few developer previous of Java 6 to ADC members, but they discontinued the practice several months ago and haven’t made anything available since.  It’s not as bad as all that though, the preview releases weren’t too much more than a renamed Java 5 with a few new generic APIs.  Either way, Apple really has no excuse for not having Java 6 ready at least to coincide with the latest version of its OS, if not sooner.

To be totally honest, I don’t see how Apple is even justifying this decision to itself and its stockholders.  Consider how many Java developers have switched to Macintosh over the last few years.  I can count on one hand the number of developers I know and respect who still use Windows or Linux as their primary development machine.  It’s startling the shift in the market which has taken place, partially driven by Rails’s major push of TextMate and the waves it caused throughout the rest of the development community, but also caused by the fact that MacOS X really is a very slick, very stable BSD incarnation which can run smoothly as a desktop.  Well, that and the fact that the Apple hardware just looks so cool.

The thing is, all of these Java developers who’ve switched to Mac recently are going to start second guessing that decision.  Java 6 is now a year overdue for the Mac platform, and Apple is giving no indication of rectifying the situation any time soon.  What’s worse, is the version of Java 5 which does come pre-installed on Leopard seems buggy and unstable (disclaimer: I haven’t actually tested this myself, I just have it on good authority).  Without a modern, stable Java, many developers will be simply unable to use the platform as their primary system.  And guess where these developers will turn?  Either to Linux and all the headaches thereof, or back into Microsoft’s waiting (and well-patented) arms.  Is Apple really so big that it can just give the finger to such a large market segment?

Consider too, what this is going to mean for the future of the Mac platform.  In the last couple years, we’ve seen a vast increase in the quality and quantity of applications available for Macintosh.  I don’t think that it’s a coincidence that this has correlated directly with the up-surge in developers switching their primary platform to OS X.  Think about it, developers who use a certain platform are going to write software with that platform in mind.  It’s only natural.  With more and more developers focusing on Macintosh, the quality of applications for the platform increases, as well as number of new projects focusing exclusively or primarily on the platform for final deployment.  In short, it’s exactly what Apple needs to make the platform a dominant player in the market 5 years from now.  By flipping off the developers, Apple is basically saying “Yes, we know you want to write state-of-the-art applications that run exclusively on our platform, bringing more customers to our outlet stores, but the fact is that we don’t want you writing applications for our platform.  Have you heard of Linux?”

Now I know that speaking out against Apple is like blaspheming a divinity, people have been stoned for less, but it still needs to be said.  For the record, I like Macintosh.  I like the Apple products, and I’ve always loved the Mac OS (ever since my first computer running OS 7).  That said, I have never liked Apple as a company, and this latest fiasco is reminding me why not.  Hopefully Apple will see the error of their ways and offer Java 6 as an update sooner rather than later.  And if not, there’s always Windows!