Skip to content

02 web platform

Chris Tracy edited this page Jun 18, 2017 · 4 revisions

The "web platform" Spectrum

I'm not happy with the options available to efficiently leverage "web platform" technologies for local applications. This is a summary of the spectrum of technology/deployment options.

#1 #2 #3 #4 #5 #6 #7
web app (pre-HTML5) SPA / HTML5 PWA Electron Chrome App hybrid desktop native
2001 2010 2017 2015 2014-16 2009 1995

Note: The year line (3rd line) is my guess as to when the technology was "minimally viable" for OSS applications built by a single dev or by small teams (not by companies or million-dollar budgets).

Innovation

Notice the "wings" (far left & far right) are the oldest and most mature, and newer options are appearing in the middle. In my opinion the middle is where we could start combining technologies in ways that could bring "cloud innovation" back to desktop computing.

Descriptions & Details

  1. web app
  2. HTML5/SPA circa 2013, in AngularJS (ng), Backbone, Knockout, MooTools
    • modern flavors like Elm or React+Redux circa 2015
  3. PWA: see this 2017 Google GDC talk
    • Browser PWA features are innovative, but also long overdue, considering they're replacing "application cache" features from 2014 that proved unviable in real-world use.
  4. Electron
    • Seeing astounding pace of innovation. For me (@yzorg) the pace of innovation in VSCode alone proves this point.
    • But the learning curve for an app author is steep. Developers don't just to write the app, but manage:
      • updaters, i.e. https://github.com/Squirrel
      • complex runtime hierarchy: V8 / Chromium / NodeJS / NPM
      • Electron cannot run packages that include C/C++ code bound to nodejs (and even: to specific versions of node). And NPM, our package manager, is no help.
  5. Chrome App
  6. #hybrid
    • the classics: Apache Cordova, ReactNative
    • corollary: write your own "WebView wrapper" per platform
    • Win8 JS/HTML5 apps
    • WebOS
    • many more...
  7. Native

PWA predecessor: Brower "Appliation Cache" (RIP)

The specific failure of AppCache (the predecessor to service worker, the deployment "platform technology" of PWAs) is that "AppCache" couldn't handle many real-world update scenarios (specifically when "code", content, and application data where "mixed" in a URL "tree". These are often the type of content changes or JS changes that require application updates in app stores.

Clone this wiki locally