I'm only mildly familiar with Flex, but have worked with GWT for many years. We had to make a very similar decision some years ago (Flash vs GWT), but for different reasons. In the end we saw the many advantages of GWT over Flash (Many of which apply to Flex):
Not all our customers have flash, penetration numbers from Adobe are useless, you need your own (which we have) to see what your customers actually have. In corporate and education markets the penetration is actually far lower than the high 90s that Adobe quotes.
GWT is truly cross-browser and platform compatible (Linux, Mac, Windows, Android, iPhone, etc, etc) whereas flash will never be. You may not care about that, but we did.
Flex is proprietry Adobe Technology, whereas GWT is fully open source and customisable
GWT integrates with the DOM, and everything else on your page far easier than flash and Flex do.
GWT is coded in Java, and we all know Java extremely well
To Address your specific points:
* futureproof
Nothing is truly future proof, but I feel that both GWT and Flex would be fairly future proof. Maybe GWT a tiny bit more so because it's open source.
* works on all major browsers
GWT works in Firefox(and all gecko browser), Safari (and all Webkit browsers), IE and Opera. Flex works in all browsers, but only if Flash is supported, so I would say GWT comes out on top there.
* fast & responsive user experience
On platforms where it's supported, Flex is going to kill GWT dead for user experience. You just can't compete with flash when it comes to smoothness and slickness.
* code should be unit testable
Both are easily unit testable
* code must be maintainable
When coded well both are maintainable
* speed & ease of development
As long as your familiar with them, I'd say it's much of a muchness.
* supports vector graphics of some sort (SVG a plus)
I can't speak for Flex, but GWT supports vector graphics via SVG, through third-party libraries.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…