A Taxonomy of Applications

From PiRho Knowledgebase
Revision as of 09:09, 13 August 2026 by Dex (talk | contribs) (Created page with "'''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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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.

Related Topics