Again, Laszlo is about XML, not about Flash. But wait, you say, Laszlo applications run in the Flash player. So how can that be true? And why is that meaningful or relevant? First, Laszlo's platform and APIs are abstracted from the client APIs. In contrast, Macromedia's MXML includes ActionScript and relies on UI components built in Flash MX -- it's tightly bound to the Flash player and authoring tool. Or consider Microsoft's upcoming XAML, which is tightly bound to Microsoft's Avalon/WinFX client framework. Laszlo's XML language and framework is self-contained (no need to use ActionScript APIs, Flash MX, C#, "code behind," or any other external language) and designed expressly for development of rich interactivity. Even Laszlo's own UI components are defined in LZX; there's no notion of "intrinsic" widgets or an escape hatch such as embedded Flash-authored components. For Laszlo, the SWF format is simply a compiler output format. An analogy is C++ -- a developer writes in C++ and the compiler targets a given CPU, whether it's Intel, PowerPC, or SPARC. Here, a developer writes in LZX, and the compiler outputs SWF bytecode. (As an aside: Flash developers sometimes assume that Laszlo, since it targets Flash 5, cannot offer capabilities beyond the Flash 5 authoring tool. This is not the case; as an obvious example, Laszlo's language offers capabilities well in advance of Flash 5 -- e.g, a formal class/object model. But that's a topic for another day.) Over time, Laszlo wants to make LZX a universal, runtime-independent, rich Internet language. Imagine writing a single Laszlo application and using Laszlo Presentation Server to deliver this application into Macromedia (Flash), Microsoft (Longhorn/Avalon), and Java/J2ME runtimes. This is the architecture we've built for from day one, and we have designed the system so that compatibility will be preserved as the Laszlo compiler targets other runtime environments. Take a close look at LZX and you'll see that with its view hierarchy, constraints, XPath-based data binding system, and animators, it delivers unprecedented expressive capability for rich, data-driven UIs. With a clean language designed from the ground up for the purpose of delivering RIAs with highly customized behaviors, this is possible.