The number one question people have for me when I tell them that I am developing Java on Mac OS X is, “How well do your applications run?” And the answer is that my experiences have been really good — stunningly good in fact. But then, most of my applications have been faceless server applications and most of the cross-platform problems in Java hit GUI applications. As luck would have it, a few of my friends that develop GUI applications have started developing on OS X as well and I have good news to report.
One of these friends, Greg Murray, has been working on his own Java code editor for the past year or two in his spare time. That is when he is not working on the J2EE Blueprints at Sun. As he makes improvements, it is turning into quite a decent tool for hacking on Java code. You can find this program, called MightyJ, at http://www.mightyj.com/. Greg originally developed this application on Linux and Windows, but after seeing my OS X based laptop and its JDK 1.3 implementation, he took the plunge and bought a Cube and started hacking on MightyJ using OS X. And his experience was almost seamless. They only place he had to change code was in some custom components that he had built himself. A few days later he was raving about how MightyJ looked just like a native OS X app and was impressed by the lack of problems when running it on OS X. Now, his biggest complaint is that he doesn’t have a Mac OS X machine at work.
You can find screenshots of MightyJ running on OS X at http://www.mightyj.com/screen_shots.html.
Even better, it seems that Swing on OS X is just going to get better. Apple has been hard at work at figuring out how to get hardware acceleration behind Swing to drastically improve performance and has been showing this technology off at WWDC. In demos it turned previous choppy resize operations into silky smooth ones. This technology will be shipping as part of the upcoming Java update, but will not be turned on by default as it is not quite ready for prime time. You can bet that I’m digging in to find more information about this technology and will get details out as soon as I can.
What have your experiences been in running Swing applications? Has it all been good, or have you ran into issues that Apple and other developers should be aware of?