A Taxonomy of Applications
Summary: The term application encompasses a wide variety of software delivery models, execution environments, architectures, and deployment mechanisms.
Over the decades, the software industry has introduced numerous application technologies, including desktop applications, web applications, browser plugins, widgets, mobile applications, progressive web applications, hybrid applications, and runtime-hosted solutions.
This article provides a structured taxonomy of application types, explaining how they relate to each other and identifying the common architectural patterns that exist beneath the terminology.
Context
Many discussions about software architecture become confusing because different classifications are mixed together.
For example:
- A Progressive Web App is often compared to a Native App.
- A Single Page Application is often compared to Electron.
- A Widget is often compared to an Application.
- A SaaS Platform is often discussed as though it were an application technology.
In reality, these concepts frequently describe different aspects of the application ecosystem.
A useful taxonomy helps clarify these relationships.
What Is A Taxonomy?
A taxonomy is a system used to classify and organise related concepts.
Rather than treating every application technology as a unique category, a taxonomy identifies shared characteristics and groups technologies accordingly.
For example:
Animal ├── Mammal ├── Bird └── Reptile
Similarly:
Application ├── Native ├── Web ├── Hybrid └── Runtime Hosted
The objective is not to determine which approach is superior, but to understand how each approach relates to the others.
The Application Family Tree
Applications │ ├── Native Applications │ ├── Web Applications │ ├── Hybrid Applications │ ├── Runtime Hosted Applications │ ├── Component Applications │ └── Cloud Delivered Applications
Each branch contains further subcategories.
Native Applications
Native applications execute directly against a platform's operating system APIs.
Application
│
▼
Operating System
│
▼
Hardware
Examples
- Windows Applications
- Linux Applications
- macOS Applications
- Android Applications
- iOS Applications
Characteristics
- Platform specific
- Direct operating system integration
- High performance
- Full device access
Typical Technologies
- Win32
- WinUI
- Cocoa
- Swift
- Kotlin
- GTK
- Qt
Web Applications
Web applications execute within a web browser.
The browser acts as a runtime environment and abstracts operating system differences.
Application
│
▼
Browser
│
▼
Operating System
Traditional Web Applications
Examples:
- Content Management Systems
- Webmail
- Intranets
- E-Commerce Platforms
Architecture:
Browser
│
Server
│
Database
Single Page Applications (SPA)
Examples:
- React
- Angular
- Vue
Architecture:
Application
│
▼
Browser
│
▼
API Services
Progressive Web Applications (PWA)
PWAs are a specialised form of web application.
They add:
- Service Workers
- Offline Support
- Push Notifications
- Installability
A PWA is therefore:
Web Application
+
Extended Browser Capabilities
=
PWA
Hybrid Applications
Hybrid applications combine technologies from multiple categories.
They typically use web technologies while maintaining access to native capabilities.
Electron
Application
│
▼
Chromium
│
▼
Node.js
│
▼
Operating System
Examples:
- Visual Studio Code
- Discord
- Slack
Cordova
Packages a web application into a native mobile application.
Capacitor
A modern evolution of Cordova with improved platform integration.
MAUI Hybrid
Combines native application components with web-based user interfaces.
Common Characteristics
- Shared codebases
- Multi-platform deployment
- Access to native functionality
- Additional runtime layers
Runtime Hosted Applications
Runtime-hosted applications target an intermediary runtime rather than a platform directly.
This category includes many technologies that are often incorrectly grouped elsewhere.
Application
│
▼
Runtime
│
▼
Platform
Examples
- Java Applications
- .NET Applications
- Electron Applications
- Browser Applications
- AIR Applications
- Web Runtime Environment Applications
The runtime provides:
- Storage
- Networking
- Security
- Rendering
- Platform abstraction
Characteristics
- Platform independence
- Consistent APIs
- Simplified portability
- Runtime dependency
Component Applications
Some software is not intended to function as a complete standalone application.
Instead, it provides functionality within another application.
Widgets
Widgets are small applications designed to perform specific tasks.
Examples:
- Weather Widgets
- Stock Tickers
- Calendar Widgets
- System Monitors
Web Parts
Web Parts provide reusable functionality within larger platforms.
Examples:
- SharePoint Web Parts
- Dashboard Components
- Enterprise Portal Modules
Browser Extensions
Extensions add capabilities to an existing application.
Examples:
- Password Managers
- SEO Toolbars
- Developer Tools Extensions
Modern Components
Many modern systems use:
- React Components
- Vue Components
- Web Components
- Widgets
Although implemented differently, the concept remains similar.
Cloud Delivered Applications
Cloud delivery describes how software is provided rather than how it is built.
Software as a Service (SaaS)
Examples:
- Microsoft 365
- Salesforce
- ServiceNow
- Google Workspace
A SaaS solution may internally use:
- Native Applications
- Web Applications
- PWAs
- Mobile Applications
- Hybrid Applications
It is therefore best viewed as a delivery model rather than an application type.
Historical Branches
Several technologies occupy important positions in application history.
HTML Applications (HTA)
HTAs combined:
HTML + Scripting + Desktop Trust
They can be viewed as an early hybrid application technology.
Java Applets
Applets were runtime-hosted applications delivered through browsers.
Adobe AIR
AIR brought web technologies onto the desktop by supplying a runtime environment.
Silverlight
Silverlight combined browser hosting with runtime-based execution.
Flash Applications
Flash was both:
- A runtime platform
- An application delivery mechanism
Its influence can still be seen in modern web application development.
Another Way To Classify Applications
Applications can also be classified according to where execution occurs.
Local Execution
Application
│
▼
User Device
Examples:
- Native Applications
- Mobile Apps
- Desktop Applications
Browser Execution
Application
│
▼
Browser
Examples:
- Web Applications
- SPAs
- PWAs
Runtime Execution
Application
│
▼
Runtime Environment
Examples:
- Java Applications
- Electron Applications
- AIR Applications
Distributed Execution
Client │ ▼ Services │ ▼ Infrastructure
Examples:
- SaaS Platforms
- Cloud Applications
- Enterprise Systems
Common Architectural Patterns
Most application technologies share one of a small number of execution models.
Direct Execution
Application
│
▼
Operating System
Hosted Execution
Application
│
▼
Host Environment
│
▼
Operating System
Distributed Execution
Client
│
▼
Services
│
▼
Data Sources
These patterns appear repeatedly throughout computing history.
Why Taxonomy Matters
A structured taxonomy helps developers and architects:
- Compare technologies fairly
- Select appropriate architectures
- Understand trade-offs
- Identify shared concepts
- Avoid terminology confusion
For example:
- A PWA is not a competitor to SaaS.
- A Widget is not a competitor to Electron.
- A Runtime is not an Application.
- A Browser is not merely a renderer.
Each occupies a different position within the overall ecosystem.
Key Takeaways
- Applications can be classified according to architecture, runtime, hosting model, or delivery mechanism.
- Many technologies overlap across multiple categories.
- Web applications, native applications, hybrid applications, and runtime-hosted applications solve similar problems using different approaches.
- SaaS is a delivery model rather than an application technology.
- Widgets, components, extensions, and Web Parts are specialised application forms.
- Most modern application platforms are evolutionary refinements of concepts explored over many decades.
- Understanding the taxonomy of applications provides a clearer foundation for architecture and design discussions.