-
Notifications
You must be signed in to change notification settings - Fork 1
02 web platform
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 | 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).
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.
- web app
- HTML5/SPA circa 2013, in AngularJS (ng), Backbone, Knockout, MooTools
- modern flavors like Elm or React+Redux circa 2015
- 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.
- 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.
-
Chrome App- Chrome Apps are retired in favor of PWAs. Which is great for "self contained" apps, where the web is the ecosystem, but not like Electron, we can't combine local resources that work together.
- #hybrid
- the classics: Apache Cordova, ReactNative
- corollary: write your own "WebView wrapper" per platform
- Win8 JS/HTML5 apps
- WebOS
- many more...
- Native
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.