I think JavaFX is more like Flex, because JavaFX is more about building applications than animations (which is, I gather, one of the sensitive distinctions between Flex and Flash).
I think of JavaFX and Flex as the future heirs to Rich Internet Application programming. They're both intended to stretch the realm of what's possible with RIA.
One of the biggest benefits of JavaFX that I see is that you can use your existing Java business logic by simply importing it.
Some of the language features, such as binding and duration as a data type, are paradigm-shifting, because they make certain functionality possible and readily available:
- Binding: Connecting two values together, so you can automatically update one value when the other updates. Example: "name: bind textfield.getValue". Much easier than setting up Observer patterns to watch for changes to variables.
- Duration can be used as a data type: "var frameDelay = 5ms". Having Duration as an integral part of the language seems like a no-brainer when dealing with animations.