If I learned anything in the wake of yesterday's entry, it's that different people are touching entirely different parts of the elephant when they talk about Adobe's Flash. For most people, Flash is still the animated movie-maker that it's been since the very late 1990s. (And people really really hate Flash splash screens!) But non-artist that I am, that's not the aspect of Flash that interests me.
What I see when I think "Flash" is a mechanism for coding up and deploying RIAs (Rich Internet Applications) that (preferably) contain no animation at all. The platform that Adobe created for doing this with Flash is called Flex.
The Flex platform is conceptually similar to AJAX, but seems way less haywire to me.
Flex consists of three major elements:
- ActionScript 3.0, which is an object-oriented scripting language superset of ECMAScript.
- MXML, which is an XML-derived markup language for defining UIs and data bindings.
- The Flex Class Library contains components including controls, data containers, and data protocol managers.
A Flex compiler compiles all three of these elements into a binary file with the extension .SWF. The SWF file is loaded and run by the Flash Player (almost always a browser plug-in) which contains a bytecode virtual machine and a JIT compiler. The jitter compiles the SWF to native code as needed. When you've got a finished and debugged SWF, you publish it to a Web host where people can request it via HTTP and execute it via their Flash Player browser plug-ins.
As with most compiled languages, you can write source code files in any old text editor and then compile them to SWF with the free command-line compiler that Adobe makes available. But I was delighted to see that Adobe has implemented a Flex IDE using Eclipse. The product is called
Flex Builder, and I just installed the trial version this afternoon to take a look. The Eclipse implementation is very good, and even has a Delphi-like drag-and-drop palette for Flex components. The Adobe site has some nice tutorials, and I was able to create a (trivial) app in twenty minutes, allocating abundant time to poke at the IDE and understand what it was I was actually doing. The $750 price of Flex Builder is a little daunting, but I will admit, it's very slick.
So that's what I really mean when I say "Flash": a genuine programming platform where the focus is code and not eye candy. I suspect I should cut the confusion by calling it "Flex." As the Star Child said, I'm not entirely sure what to do with it yet-but I'll think of something.