A huge chasm divides the application development world, one that dozens of vendors are rushing to fill. On one side are desktop applications; on the other are Web applications. In between are RIAs (rich Internet applications), which have attracted droves of developers and will continue to do so for years to come.
Desktop applications respond quickly, present complex user interfaces gracefully, and take full advantage of the resources of the local computer. On the flip side, they require an installation procedure, must be compatible with all the other locally installed software, and need to be updated, which may introduce incompatibilities.
Classic Web applications need no installation, are always up to date, and can be made universally compatible. On the other hand, they tend to be unresponsive, their user interfaces are limited, and they can be knocked for a loop by server loads and connectivity issues.
RIAs attempt to combine the strengths of desktop and Web applications without falling prey to their weaknesses. RIAs try to present most of their user interfaces at the client so that they can be responsive and the interface can be as complex as it needs to be. RIAs often do need an installation, but usually only for the runtime engine, which tends to be small and most often updates itself automatically. The RIA application itself typically launches from the remote server.
RIAs try to allocate resources to the most appropriate place. If the gating issue is the overall scalability of the application, then the designer of the RIA will run most of the CPU-intensive computations on the client. On the other hand, if the application uses a database intensively, then many actions will run on the server.
Many RIAs are written to accommodate intermittent connectivity. If such an app needs a database resource, a local database kicks in when the local computer disconnects from the Internet. When an Internet connection is reestablished, the application synchronizes the local database with the central database.
I don't believe for a minute that RIAs are going to take over the world. There will always be applications that are best implemented on the desktop and others that are best implemented on the Web. What I believe is that RIAs will play an increasingly important role in bridging the gap between desktop and Web applications, and eventually at least one technology may come along to unify the whole spectrum. I'm not sure what that technology will be -- or even whether it's something we've already seen or has yet to be created. But I expect for it to emerge in the next five years.
Read more about applications in InfoWorld's Applications Channel.