It depends, languages and technologies are tools: use the right one for the right job.
So starting at the beginning: Do you want to develop a web-app or a desktop application? Given your own suggestions I assume you are familiar with creating a Java-backend. First I'll start by ruling out Flash: Yes, you 'can' make an application with Flash, but it doesn't seems easy to me. I believe Flash is more about animation/look-n-feel. What you easily CAN do, is create assets in Flash, and use them for Flex-components. I can't help you with Silverlight, it's a big black box to me. Which at it's release seemed wanting to conquer the Flash(?Flex)-world, but just lacks the years of experience for it. Next Up is 'Standard Webpages'. It's hard to know what you define as 'standard webpages', but if that includes to be not entirely static pages, serverside controlled (maybe even some AJAX thrown in), and you're familiar with that, then why not? However, it's just another WebInterface, sure you can do amazing stuff with this, but try getting it working on each browser(version)... The Java-GUI-side: you mention JavaFX or Swing-based(fat) clients. First of all, if you're going for a webapp: drop it. Only 4 letters apply there: s-l-o-w. (Before the Java-community shoots me: yes, the speed of Java Web Start has increased astonishing, but please, compare it to flexApps...) However if you're going for a desktop-Application, then yeah, go for JavaFX. Being a Swing/Awt-wrapper, it allows you to fit in plain Swing-code when you need it. Do note that at this point JavaFX is only fully released as an interpreted language. The compiled version is stable at milestone1, but not yet good enough for a productionenvironment according to me. Then there is Flex. When it's a webapp you want, and it has to look and feel like you want, use it. It's not hard at all to grasp the concept of how to develop a FlexApplication. The structure of the language allows you to create anything you need. Besides, with the recent release of BlazeDS, easy communication with Java-backends just got free of charge. And I must say, the community here is great ;) Flex might require some new logical approach when you're used to writing Java, since it's completely event-based, but untill now I have found it worth the effort. Also note that above is written out of personal experience (which is not to be esteemed to high). Once again, use the tool which fits the job best, and if you're tight on time use one you know or is easy to learn (*subtile hint into Flex, after all this is the FlexCoders list*) --Johan

