For all of Windows's well-publicized dominance of the OS market, there have always been companies trying to make sure their applications

work on all platforms, not just Windows. In the early days building portable libraries that attempted to abstract platform specifics did this.

However, even with these portable libraries the vendors would still be forced to write some amount of platform-specific code. Further, the

vendor needed to compile the code on each platform they wanted to support. Supporting all of these platforms was costly to say the least, which

meant that more and more software was being written only for Windows. That was until Java was introduced into the world.

Java came onto the scene with a simple, but powerful idea, "Write once, run anywhere." The claim was that with Java, vendors wouldn't

have to worry about writing portable code because the Java Virtual Machine (JVM) did the abstraction for them. All the vendor had to do was

make sure there was an implementation of the JVM on each platform they wanted to target.

This is all really old news as Java was introduced nearly seven years ago. I bring it up now to ponder a question. What happened?

Where are all the Java applications? Not on the desktop as it turns out. Java has done well in the web world virtually dominating the web

application server market in corporate America. The impact on the desktop has been fair at best. Many people look at Java now as great

technology that failed to deliver on its original mission. Developers need a way to build GUI applications for the desktop without locking

themselves into a single platform.

Although it would be useful to iterate over the reasons for Java's lack of penetration in the desktop market, that isn't what interests

me. What interests me is another technology that has quietly mounted a coup on the market Java invented. What is this magic technology that

allows developers to build GUI applications for every major desktop OS without worry about platform specifics? It's Flash — that plug-in

for your browser that lets you watch animations on the web. That is actually a terrible description of what Flash is today. No, today Flash is a

complete GUI toolkit allowing developers to build applications with ease.

It is kind of funny to compare Flash MX (version 6) to earlier versions. Most people first got their feet wet with Flash back in version 3. Back then, about all you could do was pretty vector-based animations. Of course, there were a whole lot of people who wanted pretty vector-based animation on their web site. Java applets just couldn't compete and Flash kept gaining market share. Over the years, Macromedia, the makers

of Flash, have added more and more functionality to the little plug-in. By version 5, Flash was installed in over 90% of browsers, had support for

XML, and had morphed its scripting language (ActionScript) into something very close to JavaScript. Many web developers were finding that they could

build entirely new types of web applications using Flash as the GUI instead of traditional HTML rendering. However, Flash was still lacking when it

came to the needs of business developers. That all changed when Macromedia released Flash MX.

With the release of Flash MX, not only did Macromedia improve its XML support and make ActionScript almost entirely an ECMA-compliant

version of JavaScript; they also introduced standardized UI components. UI components or controls as VB developers like to call them, are the

building blocks of GUI applications. Having pre-built, standardized components allow developers to quickly build user interfaces without

reinventing the wheel or worse reinventing the wheel as an oval. Standardization is important when it comes to GUI applications. Users expect that

applications will for the most part look and function similarly. Further, Flash movies (given that Flash is now much more than an animation plug-in,

possibly it is time to start calling Flash files something besides movies) can be run without the aid of a browser, so a user can just double-click

an icon to launch a Flash application just like any other type of desktop application.

Besides improving Flash, Macromedia also did something else to further the technology: they opened up its specification. Now it is

possible for other vendors to create their own tools for generating Flash movies. In fact, Abode released a tool to do just that. Flash now has greater than 95% market share and offers just about everything a GUI developer would need to build desktop applications. Who would have

thought a little animation plug-in would be the one to finally deliver on Java's promise for the desktop?