For all of Windows's well-publicized dominance of the OS market, there have always been companies trying to make sure their applicationswork 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, thevendor needed to compile the code on each platform they wanted to support. Supporting all of these platforms was costly to say the least, whichmeant 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'thave to worry about writing portable code because the Java Virtual Machine (JVM) did the abstraction for them. All the vendor had to do wasmake 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 webapplication server market in corporate America. The impact on the desktop has been fair at best. Many people look at Java now as greattechnology that failed to deliver on its original mission. Developers need a way to build GUI applications for the desktop without lockingthemselves 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 interestsme. What interests me is another technology that has quietly mounted a coup on the market Java invented. What is this magic technology thatallows developers to build GUI applications for every major desktop OS without worry about platform specifics? It's Flash — that plug-infor 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 acomplete GUI toolkit allowing developers to build applications with ease.
Besides improving Flash, Macromedia also did something else to further the technology: they opened up its specification. Now it ispossible 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 havethought a little animation plug-in would be the one to finally deliver on Java's promise for the desktop?