We ended up choosing Flash as technology and Flex2 as development tooling. The decision is not exactly final yet, but we have decided to go with this for now. That is, we start developing real business functionality in it, and of course will continue evaluation as we go. There is still the possibility that we bump into a show-stopping issue, which will make us go back and re-evaluate.
Here are some pros and cons on the technology, as we see it
- Proven UI technology through many years
- The runtime is everywhere--nearly no install needed, even though flex2 requires flash 9
- Good documentation--as in, really good documentation, it seems
- Large user community--at least for Flash as a technology in general
- Easily integrated into our build--we are using the flex2 maven plugin by Israfil
- Closed technology--Adobe is still sitting on the runtime
- Hard to test--Still have not found a good way to automate test of the UI layer
Flash is like a compromise between extremes, where GWT and Swing/JWS are the extremes.
GWT requires no runtime except the browser. Totally lightweight. But it is also pushing the HTML/JS technology to its limits. For the UI functionality we are to make, it will be really hard to get working, also with GWT.
With Swing/JWS, there is no doubt we could do just about anything in the UI we would like to. But, it would also be a real burden on the client with runtime installation. If we could just wait for the consumer JRE, but we cannot.
But flash, on the other hand. It can do nice UIs in an easy to develop way (it seems) and its runtime will roll onto the client much easier.
So why did we not choose JavaFX? It is too bleading edge and has too heavy a runtime. It is just, so much not out there yet :-)
Issue with automatic testing
We hope to resolve the issue of automatic testing of the UI using some kind of robot technology. Something driving a mouse and clicking on the UI in an automated manner. Will have to look at this.
About evaluating frameworks
In my last post about this issue I got some really good comments. Some of them related to us not actually evaluating all the frameworks we were looking at. That is correct! It becomes more and more clear to me, why the choice of new web technology in Java land is hard. We have so much to choose from and it is only by actually using the technology to provide real business functionality, that you gain true insight into the web framework of choice.
This is also why we have now stopped further experiments with GWT and Swing/JWS and choosen to go with flash for now.