Christophe stressed a number of features that are not unique by themselves yet valuable when used together. The Flash VM makes all of the features he mentions available across operating systems and browsers. Below is a summary of his main points:
Expressiveness (vector graphics)
Vector graphics allow developers to make user interface objects behave like real life objects.
Vector graphics are helpful in a wide variety of applications. For example, in a visual dashboard, they allow charting components to be redrawn and animated at the client-side, helping the end-user to better understand data trends and transitionsPerformance (JIT compiler)
Flex applications are delivered to the client as bytecode, which is executed by the Flash Virtual Machine with the help of a JIT compiler.
This can make a significant difference in code execution and enable “desktop applications”-like performance on the web.Real time (binary sockets and pub/sub messaging)
The Flex Message Service builds on top of this infrastructure and provides a complete publish/subscribe messaging solution, allowing messages to be exchanged, in real time, between thin clients and servers. The Flex Message Service also integrates with existing Enterprise solutions systems such as JMS-based systems.
Rich media (video and audio streaming)
The Flash Player includes media playing and streaming capabilities ... it is being adopted by the major video sites such as Google Video and YouTube.
Using Flex, video can be a lot more than the passive streaming experience we are often exposed to on the web… it can be tightly integrated with the rest of the application. The video can trigger events during playback, and drive the behavior of other components of the user interface. These capabilities enable a broad range of new innovative and highly interactive applications (interactive video tutorials, interactive “ask-the-expert” series, media portals, in-context videoconferencing/videochat, etc.)Offline support (local storage and desktop client)
Flex applications can store data at the client-side in a local data store (known as local shared object). The application can access (read/write) the local data store while disconnected from the network. A lightweight desktop player is under development for browser independent Flex applications.
Christophe sees the main takeaway from using all these technologies in conjunction as improving the developer experience:
This one is not about transforming the user experience, but transforming the developer experience… Developing applications including the innovative capabilities listed above is actually easy.