The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Java on the Desktop

I think everyone would agree that Java has had a pretty bad reputation on the desktop; slow ui, memory hog, non-standard look and feel.  From my personal experience it seems like things have changed for the better.  Java and Swing have seen performance improvements and there are a few attractive look and feels for Swing now.

For building Java desktop applications you've got options such as the Eclipse and Netbeans rich client platforms and the JSR296 Swing app framework.  Also there are a lot of component libraries available for Swing now: JIDE, JGoodies, Swingx, etc...

Has anyone built a desktop application with Java?  Does anyone have recent experience building appications on Swing?  I'm planning to use Java for my application which will have both desktop components and web components.  The main reason is so I can share components between the two domains.
Wednesday, November 12, 2008
Well, I'm no expert but I recently had to build a series of simple dialogs with Swing. Where is got rough was I needed to do this using Java 1.4. Ouch! There have definitely been some major improvements since then. I can't tell you how many times I had to work around issues in 1.4 that hadn't really been solved yet. I think that things are probably much better now. But just a few years back it was very painful. I found myself cursing swing and wishing for the ease of .NET Windows Forms development.
Wednesday, November 12, 2008
It was just announced that Sun's new JavaFX language for building UIs will be released on December 2nd.  I've tried the preview of JavaFX and it was pretty easy to use -- much easier than Swing.

It will probably take some time before the IDE tools catch up.
Wednesday, November 12, 2008
.NET is a much better choice for desktop applications, works great on the server side (yes, even under Linux and Apache by way of Mono and mod_mono) and has excellent documentation support and UI building tools.  If you've worked in Java you'll find it takes maybe an afternoon to cross train yourself on the basics of the C# language and a small number of days to get comfortable finding your way around the .NET libraries.
system of a Don Send private email
Wednesday, November 12, 2008
I've done a bit of the WPF stuff and love it. If JavaFX is similar then I'm thrilled to hear about it. This to me is definitely the way the future is heading. And all I can say is "it's about freaking time"!
Wednesday, November 12, 2008
i develop in both C# dotnet winforms and java swing

i started with java swing, and personally i find it a little easier to customise things like jtable renders etc
but it is pretty marginal, there is not much in it really

performance wise i have not noticed a difference between C# and java, pc's keep improving in speed and the java/dotnet runtimes are always improving too. most of my bottlenecks have been network and database issues.

people complain about java not-standard look at feel, but i don't think that is what they were really complaining about.

THey were complaining that java 1.4 metal and windows l&f look ugly.

The java 1.6 windows and ocean l&f looks fine to me, it is not identical to a windows app, but then what does a real windows app look like.

office 2007 looks different to office 2003, which looks different to office 2000. skype doesn't even look like a windows app. the browser i am using (chrome) is totally different to everything else. vista and xp, are worlds apart, etc, etc

there is no standard windows look and feel anymore, as far as i am concerned. make you app look nice and easy to use, and no one will care that the jtable doesn't quite look like a datagrid.
Wednesday, November 12, 2008
Trace Modeler is a java desktop app, a UML sequence diagram editor.

It doesn't have a form-based UI, it's 100% Swing and considerable effort went into the presentation and usability. Check it out,

Using java for cross-platform dev is certainly doable, but there are lots of little problems (different versions and implementations of the JRE each have their own particular bugs, filechooser on windows is *still* problematic, no decent way to deal with large memory requirements, ...). You'll be able to find some kind of (less than ideal) work-around for most of them though.

But what is a real let-down after 10 years of java is the deployment!

Sure, it's cross platforms but OS integration and fidelity still is sub-par.

When it comes to deployment you're pretty much on your own.
Yanic Inghelbrecht Send private email
Wednesday, November 12, 2008
My desktop app, Poker Copilot, is 100% Java. I have tried to make it difficult to detect that it is Java, including installation.

I used Swing, with help from JGoodies and Ken Orr's Mac Widgets Java library.

So it is indeed possible to do.

I think the key is to obsess over appearance and get a thorough understanding of GUI threading to ensure the responsiveness and performance are good. "Java Concurrency in Practice" is a book that helped me a great deal here.
Steve McLeod Send private email
Thursday, November 13, 2008
Thanks for the input all, even you, obligatory .Net guy!
Friday, November 14, 2008
"slow ui, memory hog, non-standard look and feel"

SWT (i.e., Eclipse) shouldn't suffer from those problems.

And with Swing you can make the widgets look native via:
Dan Send private email
Thursday, December 04, 2008

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz