tags:

views:

48

answers:

2

I'm planning a client-server product for a tiny, low-volume, high-cost vertical market. One of the components of the product will be a desktop application, simple to moderate in complexity, for data entry and uploading to a central server from remote PCs and/or Macs via SOAP. The server is a Java web app.

Customers will be choosing their platform (Windows or Mac) based on what the client app runs on, so my options are wide-open here. However, I will be developing on a Mac and have a strong allergy to MS-specific technologies (sorry). The app will not need to run on any non-desktop-computer devices and I have total freedom to say it will support X but not Y or Z without any negative consequences (quite the luxury, to be sure).

I have a lot of experience in server-side development but very little in desktop GUI stuff, and am evaluating my options on the client - basically what do I want to commit to learning over the next 6+ months. I have server-side Java experience as well as a brief dabble in iPhone development, which went OK.

Overall I'm looking for:

  • Ease of learning & development
  • IDE support
  • Healthy surrounding ecosystem (libraries, tools, help, etc.)
  • Quality documentation

My options as I see them, in rough order of how I'm currently mentally ranking them:

  • Java Swing
  • Cocoa
  • Java SWT
  • JavaFX
  • Adobe AIR
  • XULRunner

Am I leaving anything out?

+1  A: 

If your application has to support both Windows and Macs, I would suggest you avoid using languages which need compilation. In that case, Java, Python, and CS4 will be your candidates. Personally, I would go for Java Swing since it's proven to work on a number of platforms (not flawlessly tho') without the need of extra libraries. Some people complain about Swing, but my experience with it isn't that terrible. Well, maybe it was because I don't use it for huge and complex interfaces. If you choose to go with Swing, try to see if you can hand-code the interface yourself, it isn't that terrible, but it does have a learning curve. Good luck!

shinkou