Over the last few years, web-based Rich Internet Applications (RIAs) have become increasingly sophisticated. They are leveraging technologies such as HTML, AJAX, Flash, and PDF to add depth and interactivity previously found only in desktop applications. At the same time, these technologies often allow for shorter development times than traditional desktop development environments such as C++.
Still, web-based RIAs are fundamentally limited by the browser security sandbox. They cannot access local filesystems and other devices (such as printers) except via a limited, user-mediated route. They cannot open new windows at will, or run without any windows open. They cannot run when offline. For all their richness, they still fall short of desktop applications in these capabilities.
These restrictions are not a bad thing. The browser security sandbox is essential to keeping the Web safe and, therefore, usable. For many web-based applications, the ease of obtaining the applicationsimply entering a URL in nearly any browsermore than makes up for the limitations. Desktop applications, on the other hand, do not have to operate with the same security restrictions because they require an installation ritual in which the user elects, by confirming the install, to grant greater access.
Adobe AIR, the code name for an Adobe project (labs.adobe.com/technologies/air) aimed at enabling the development of desktop applications using web technologies, aims to strike a new balance in this game by providing for the development of desktop-based RIAs. These applications can take advantage of filesystem access, windowing, offline storage, and other traditional desktop features, yet are built with the same technologies used for the Web today.
Adobe AIR consists of two pieces:
- A runtime that supports the installation and execution of applications on Windows, Mac OS, and Linux.
- An SDK that provides free tools for the development of these applications.
What Is a Desktop Application?
The "desktop applications" Adobe AIR is targeting are not defined merely by the presence of APIs to enable multiple window support or filesystem access. Adobe AIR targets applications that integrate tightly with the target operating system like traditional desktop applications written in C, C++, or Objective C. For example, Adobe AIR applications are launched from the start menu or dock, appear under their own name in the Activity Monitor or Task Manager, and have their own entry in the Windows Add/Remove Programs control panel (see the TimeTracker application in Figure 1 for an example of an Adobe AIR application).
Adobe AIR is not targeting all desktop applications, however. Applications with extreme size, computational, or other demands are probably not well suited for implementations in web-based technologies or Adobe AIR.