3 ms·
My definitions: Web App: Application developed entirely using open standards, which (aims to) run in any browser, requiring no additional vendor plugins. Des
by mxh 19y ago
My definitions:
Web App: Application developed entirely using open standards, which (aims to) run in any browser, requiring no additional vendor plugins.
Desktop App: Application designed to launch from the user's desktop, without reference to a web browser.
Thick Client: Any desktop app that makes heavy use of the Internet, or any "Web App"-like thing that makes use of non-standard extensions to the browser.
Reasonable people may disagree on this, and the differences are pretty fuzzy, but my distinctions are based upon the development problems I feel each type of approach must address.
Web App: Works on (most any) platform, no installation, but you have to deal with cross-browser issues, and you're limited by the technology of the web (no local FS access, for instance.)
Desktop App: Tied to one architecture (or worry about JVM incompatibilities), installation hassles, but you get an incredibly rich set of capabilities.
Thick Client: If it's a desktop app that talks to the network, you've got all the desktop tradeoffs, plus richer data, plus worries about what happens when the user works offline. If it's a "Web App" using non-standard extensions (Flash, Silverlight) you've got to worry about whether the user has the right version installed, and licensing hassles and/or fees on the server side and/or in the toolchain. You're also constrained by the capabilities of the extensions, but, in practice, development seems easier than for a pure Web App.
I realize that these definitions mean that lots of things (YouTube) people think of as Web Apps aren't (to me, anyway), but I'm okay with that. It seems a crucial distinction that, once you're targeting the Flash client, you're not really solving the same set of (technical) problems as someone targeting a browser.