JDesktop Integration Components
A friend pointed me to the JDesktop Integration Components (JDIC) project, which aims to provide Java hooks for accessing native OS features. It seems to follow the same philosophies as BrowserLauncher and SWT: essentially writing platform specific code for as many platforms as they can think of. The underlying code, isn�t necessarily elegant, but it�s a job that needs to be done.
It seems to me that Sun should have taken this stance a long time ago. Everyone (including those within Sun) seems to understand that AWT died because of its philosophy of supporting only the least common denominator of components. Although it�s not often talked about, Swing has a similar problem. It emulates the look of a native application (with arguably decent success), but there is no way to emulate integration. A Swing app has no clean way to open the user�s email client, or minimize to the system tray. Even if Sun had gotten the native look and feels down perfectly and removed any and all performance issues, a Java GUI application would still fall short of its native counterparts. Java apps would always be limited to a subset of a native application�s possible features.
Not to pick on Swing too much, SWT has the same issue. Using native components doesn�t magically allow OS integration. While SWT applications look more native and run quicker than their Swing counterparts, they still run in a vacuum, cut off from the native environment.
I�m glad to see someone is tackling the problem. I hope they get the support of the community; and I especially hope the community learns the importance of this type of platform integration to the future of Java on the desktop.