Skip to page content or Skip to Accesskey List.

Work

Main Page Content

The Quiet Coup

Rated 3.77 (Ratings: 19)

Want more?

 
Picture of DevilM

Matt Liotta

Member info

User since: 11 Mar 2002

Articles written: 6

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?

Matt Liotta started his development career at the age of twelve by building C applications for faculty at Emory University. He built his first web page soon after the release of Mosaic 1.0. Excited by early web applications, Matt saw the potential to replace legacy client server applications. At Emory University he built an enterprise calendaring system, the faculty poster project, a Y2K compliance tracking application, and a prototype for an electronic research administration system.

Since then he worked with an early ASP, Cignify, to build their transaction processing system for payroll time data. For this project, Matt created a message queuing system to connect significant bodies of code in C++ and VB with the main application server. He also built a code distribution system for Consumer Financial Networks, as well as the first online account management system for Grizzard Communications. Matt did consulting around San Francisco for companies such as Williams Sonoma and Yipes Communications.

Soon after, he built gMoney's Group Transaction System using an innovative XML messaging architecture for ColdFusion that matches conceptually with the now popular web services paradigm. He also wrote a C++ knapsack algorithm to realize nearly a 20-fold improvement over a similar approach written entirely in CFML. Later at TeamToolz, he designed a highly secure and scalable network architecture for ColdFusion to support N-tier transport agnostic distributed applications. He then went on to implement a cutting-edge content management system for DevX. He is now President & CEO of Montara Software, which he recently founded.

Matt is also a frequent speaker on web architecture:

  • Moving Legacy Applications to the Web (Emory Web Developers Users Group, Atlanta --Feb, 98)
  • The Benefits of Web-based Enterprise Calendaring (Emory Web Developers Users Group, Atlanta -- Aug, 98)
  • Monitoring and Managing Services Remotely Using TAPI (Atlanta Visual Basic Users Group, Atlanta -- Nov, 99)
  • Scalable, Extensible Cold Fusion Architecture (Bay Area ColdFusion Users’ Group, San Francisco; Aug, 00)
  • Scalable, Extensible Cold Fusion Architecture II (CF_Scale Conference, Washington, D.C. -- Nov, 00)
  • Cold Fusion Scalability Panel (CF_Scale Conference, Washington D.C. -- Nov, 00)
  • Introducing CF Espresso (including white paper) (CF_South Conference, Orlando -- Feb, 01)
  • Utilizing Reverse Proxies (Web Services World, San Jose -- Apr, 01)
  • Cold Fusion on Linux (A CF Odyssey Conference, Washington, D.C. -- Jun 01)
  • Architecting Web Services (Web Show 2001, San Francisco -- Sep, 01)
  • Code Techniques in MX Panel (Bay Area ColdFusion Users' Group, San Francisco -- Jul, 02)
  • ColdFusion Cruise, May, 03

The access keys for this page are: ALT (Control on a Mac) plus:

evolt.org Evolt.org is an all-volunteer resource for web developers made up of a discussion list, a browser archive, and member-submitted articles. This article is the property of its author, please do not redistribute or use elsewhere without checking with the author.