Matthew is a DZone employee and has posted 155 posts at DZone. You can read more from them at their website. View Full User Profile

JDICPlus: Has JDIC Received CPR?

03.31.2008
| 9259 views |
  • submit to reddit

Just in time for JavaOne, it looks like Sun and the community have breathed some new life into the JDIC, the JDesktop Integration Components, a project that has appeared dead for over a year.Via Kirill's Swing Links of the Week, I found a very interesting announcement from last Monday about a new project called JDICPlus.  Currently only for Windows, JDICPlus allows you to work more closely with the Win32 API, primarily allowing a lightweight wrapper around IE.  

Right now it's in a pretty early stage, but they have some nice demos showing a Java web browser using IE, Flash playing in a Swing Frame, and a Map Explorer app that looks pretty neat.  

Many users had written JDIC off for dead since the release of Mustang, where, I believe, the most used parts of the API were rolled into the core API.  It's good to see someone making use of the components to add enhanced integration with a key platform.  If you're deploying a Java client to Windows, take a look at JDICPlus, it might just make your experience a bit smoother.

Comments

Rick Ross replied on Mon, 2008/03/31 - 7:57am

In the erea of mashups, there's little doubt that JDIC plays an important role if Java is to be a strong contender in the field of desktop applications. Just about every app I can think of these days has some need to integrate with its host OS or leverage the power of the system's default browser.

I'm glad to see signs of life on JDIC, and I hope this presages good things yet to come. Anyone know more about what's ahead?

Jacek Furmankiewicz replied on Mon, 2008/03/31 - 9:38am

I have to say this project is VERY upsetting.

 We use Java because it is supposed to be a cross-platform tool. And here Sun comes out and says:

Currently the JDICplus is a Java Win32-extension development kit, enabling developers to use extended Microsoft Windows API functionality

 Well forgive me, but this is a major sham. I am tired already of Swing on Linux being totally unmaintained (bugs galore, both with L&F and with actual functionality, something as simple as JFrame.setExtendedState() does not work reliably) and now this. Not to mention some of the recent enhancements in the JDK (like Quickstarter) being Windows-only by default.

If I want to develop windows-only apps, I'll use C#/.Net. 

 Sun is playing a very poor game if it wants to optimize Java only for Windows and other platforms be damned. It goes against everything that Java was supposed to be.

Rick Ross replied on Mon, 2008/03/31 - 9:46am in response to: Jacek Furmankiewicz

[quote=Jacek]I have to say this project is VERY upsetting.

We use Java because it is supposed to be a cross-platform tool. And here Sun comes out and says:

Currently the JDICplus is a Java Win32-extension development kit, enabling developers to use extended Microsoft Windows API functionality[/quote]

Your complaint seems quite reasonable to me, Jacek. I certainly don't want to suggest that JDIC should move forward in some kind of Windows-only strategy. That would completely contradict the value proposition of Java!

I had thought that it was Windows first, but I suppose it was optimisim that made me assume full support for other major platforms would follow. I really hope it will. Does anyone have further info about this?

Jacek Furmankiewicz replied on Mon, 2008/03/31 - 10:25am in response to: Rick Ross

If the project name was Java IE Wrapper (which is what it is at this point), sure, I could accept it...it's Windows-only app, fair game. But the project description implies that JDIC in the future will be optimized for accessing Win32 API only.

For us Linux users I have only one thing to say...thank you IBM for SWT. Really, much appreciated. I didn't fully understand its value until I switched to Ubuntu. At least I can embed the browser in SWT, across all platforms.

 

Alexander Shvets replied on Mon, 2008/03/31 - 12:29pm

I beleive that significant part of JDIC code had been  moved to deploy.jar file that is the part of standard Java installation. 

Pete Cox replied on Mon, 2008/03/31 - 8:41pm

Perish the thought there's already an HTML component in Swing.

If Sun had funded development of the HTMLEditorKit to be XHTML and Acid 3 compliant we wouldn't be in this mess of embedding IE/Webkit/Gecko.

Plus, Swing would have a killer HTML editor built in.

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

Filed in 1999, 350+ votes. 

 

Jacek Furmankiewicz replied on Tue, 2008/04/01 - 7:16am in response to: Pete Cox

Personally, I disagree. It's pointless to keep reinventing whatever is already working well on every platform.

Just integrate Gecko by default and it's done. Java needs to get out of its 'everything needs to be done in Java' mindset and allow better integration with native libraries...but for all platforms, not just windows, with a proper cross-platform API.

The Mono guys were able to get a simple prototype of Silverlight ported to Linux in 2 weeks(!!!) just because they relied on existing bindings to mature video/graphics libraries instead of writing them from scratch. Sun could learn something from their "reuse what already works" way of thinking (even if I don't want to touch Mono with a ten foot pole, too much MS worshipping going on in there).

 

 

 

 

Marcus Breese replied on Tue, 2008/04/01 - 11:59am

I think its time to realize that Java's orginal vision as a complete cross-platform environment is dead. Done. It failed. (and that's a good thing) I don't know anyone who thinks that write-once run-everywhere is still possible.

People choose their OS for a variety of reasons, and they expect their programs to use (and look like) their OS. In this case, the updated JDIC project is a move in the right direction. Most developers end up targetting one platform or another, so why not optimize for it?  We need to the most out of the OS as possible.

The logical evolution of this (as I see it), is SWT style programming, where you can program to a cross-platform API, but under the covers, the code is all platform specific. Then, if you need/want the extra functionality of the underlying OS, it would be possible to get it.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.