One of Flex’s greatest assets is its approachability. A developer new to the platform can quickly get up to speed on the tools and APIs to create functional and visually appealing applications. Components, data, networking, charting, graphics, animation, and much more are available for use even by programmers who are just starting out with Flex. Much of Flex’s power and robustness for novice users comes from its built-in use of its own capabilities. For example, someone starting out may not manually insert animations into his application, but the base Flex components come with some amount of animation built in so that even the simplest of applications demonstrates dynamic behavior, contributing to a rich expe- ence for the application’s users. The Flex framework also provides many powerful features so that developers, when they are ready, can add more and more of these features to their applications. For example, states and transitions offer a rich way to declaratively describe different screens of an application and a- mate between those states. This is probably not something that beginning programmers would even think to ask for, but when they are ready for states and transitions, they have immediate access to these capabilities, which is far more convenient than if they had to build states and transitions themselves.