Java. Good for client apps?
Java is great for database connectivity. But I still get turned off by swing guis. I guess it does depend on how complex your interface is though, and how much time is spent with it? Is it for config and setup only, or is it for day to day use?
Java is good for enterprise consultants. If you're doing client apps python/wxwindows is simple and fast to develop in. The enduser doesn't care what the app is written in.
The app will be day to day use, for my company and our customers.
Well, it has been done, but be prepared for a certain amount of dissapointment. Why dont you download some free java swing apps and see for yourself?
I develop a massive, shrink-wrapped client-side Swing Java application. I don't like Swing much, but if you spend the time to tweak it, performance is not a big issue. Ugliness can be fixed with a nice look and feel.
"The Mac users that can now run our software especially don't complain. "
Just me (Sir to you)
I've always kept this link in mind for mac dev using Swing, since I'm not much of a mac user:
You may want to check out the Eclipse project at http://www.eclipse.org. It is a complete IDE for java, but they have also implemented a much faster set of UI components than either Swing or AWT. The UI packages are JFace and SWT.
I haven't seen too many Java client apps that ever got much use.
in reply to those that mentioned Python+WxWindows, there's also PyQT, which has a lot of the same advantages.
I am intrigued by the SWT for Java. But it seems like if you deploy an app that uses SWT, you also have to deploy the specific SWT library written for the underlying OS. That might be acceptable for an in-house application, but could be a problem if you are distributing an app over the Internet. How do you deal with the cross-platform deployment issues with SWT? Or is it not an issue?
I read the docs on the eclipse.org site and it wasn't clear how an app with SWT is to be deployed ... whether it requires the end-user to have the appropriate SWT library for their OS already on their system, or whether it is only necessary to bundle the various flavors of the library along with your app and the SWT will automatically use the correct one based on the OS, or the user will have to specify which one based on a command-line parameter, or whether you have to code anything differently to account for the different libraries.
I've bundled the jre with a Java app. The team didn't want to see why their code wouldn't run on jdk1.4, so I just ended up bundling it in the app's dir. No system-wide installation needed. And plus I'm not a great fan of dependencies, though in this case the team would have really benefitted from writing code portable across versions...
I found out more about the SWT. It turns out that you have to bundle the native SWT library with the Java classes of your application, and the user has to ensure that the library is in the system's path. For Windows it is a dll, for Linux it is a shared library.
Thanks for the update T. Norman. That is good to know.
Fog Creek Home