Web applications have historically been less rich and responsive than desktop applications. End users don’t necessarily understand the details of how an application works, but they know that interacting with a website in the browser is distinctly different from using an application installed locally. When a development team tackles a new project, one of the first questions they are faced with is whether end users can accept the limitations of web development or whether they need to require a client desktop application to be installed. Web applications are accessible from just about any browser, just about anywhere, but they are limited by what you can do with markup and script code running in the browser.
Desktop applications, also called fat client applications, require that the user perform an installation on their machine, but let developers leverage the advanced mouse and graphics capabilities of the operating system that would be extremely difficult to implement in a web browser, and also take advantage of the user’s machine for tasks such as offline storage. Conversely, web applications can be updated just by changing what is running on the server, and site visitors get the latest version instantaneously. However, it’s much more difficult to update a desktop application, because you’d have to get users to perform yet another installation or else ensure that the application has been coded to include a clever system for doing updates automatically.
Web applications are said to use a zero-deployment model, but desktop applications use a heavy deployment and configuration model. The choice is often characterized as a tradeoff between rich and reach: Desktop applications generally offer a richer user experience than what could be offered in the browser, but with a web application you are able to reach users anywhere on any OS with almost no extra effort. Further, many companies have restrictive policies in place regarding what software can be installed on employees’ machines, and they often don’t allow employees to have administrative access that is required to install new applications, so web applications will be the only viable option in many situations.