Code Once Deploy Everywhere witth Adobe Flex 3 and AIR
This week Adobe announced the availability of Adobe® AIR™ and Adobe® Flex® 3 software which combine to create a technology platform for enabling rich Internet applications (RIAs). The importance of RIA's, a term Adobe coined several years ago, is the promise in the near term to eliminate the usability and functionality boundaries between desktop and web applications. And more importantly for the long term, RIA's promise to eliminate those same boundaries between mobile, desktop and web applicaitons. The concept of coding an application once and deploying it everywhere, seamlessly running it as a web application, desktop application and a mobile application is quickly becoming a reality. Microsoft has released a competing technology Microsoft® Silverlight™.
This may be an important inflexion point for mobile developers who have operated under the assumption that mobile computing is different from PC computing. And in all fairness the proliferation of Mobile Operating Systems has advanced this assumption into a law that goes further to state that mobile software needs to be built from the ground up using device specific stacks.
We have discussed the mobile OS fragmentation and important choices developers must make to target the broadest market for their applications. We also have discussed new advances to address this issue with portable stacks and technologies from Google and AOL. But now we may be seeing a paradigm shift from the industry addressing the challenge by improving portability across the fragmented market to simply ignoring the fragmentation altogether. The strategy to accomplish this is to move as much of the application code out of the operating system into a model where the application depends on the internet for its computing power, features and rich user interface (rich internet applications). Companies like Adobe and Microsoft are providing small portable environments (Adobe Flash, Silverlight) that supports graphics, user input and limited functionality and then rely heavily on the application architecture to use internet resources (web services) to accomplish the target functionality and heavy lifting for the application.
This interesting blog entry "Mobile applications, RIP" by Michael Mace, former Chief Competitive Officer and VP of Product Planning at Palm, proposes that mobile applications will move completely to the internet and be run through the browser. The conclusions and advice at the end of the article are alarming:
For the mobile customer Michael advises "make sure your next smartphone has a fully functional browser that can display standard web pages. And get the best deal you can on a flat-rate data plan; you'll need it."
For operators or handset vendors Michael's advice is more of a reprimand "get used to life as a dumb pipe. By trying to control your customers and make sure you extract most of the revenue from mobile data, all you've done is drive developers to the Web, which is even harder to control. You could have had a middle ground in which you and mobile developers worked together to share the profits, but instead you've handed the game to the Google crowd."
And finally for developers Michaels advice is pretty radical, "If you're a mobile developer, you should consider stopping native app development and shifting to a mobile-optimized website." Michael goes on in more detail, "See if you can create a dumbed-down version of your application that will run over the mobile web. If the answer is yes, do it. If the answer is no, try to figure out what technology changes would let you move to the web, and watch for those changes to happen."
If you are watching for the technology "changes to happen" your wait may be over, the code once deploy everywhere environment of Adobe Flex 3 and Adobe Air may be worth a close look.