On 7/14/15 12:50 PM, Peter Fairbrother wrote:
On 14/07/15 18:02, Stephen D. Williams wrote:
Everything will be run in the cloud and browser because it is, overall,
a better computation model.



It is? Why?

The browser provides a super feature / security / quality / portable baseline that is rapidly improving.  Only a few alternatives come close and they all fall short in major ways: Qt (which greatly relies on browser tech now), Java & C#, Unity, UnReal, etc.  Certain things are still better in those alternatives, but less and less.  With Javascript optimization, ASM.js, SIMD.js, WebGL, etc., browsers have, for most purposes, resolved the computational gap while having massively better security stance.  WebComponents, the new binary Javascript format, along with WebRTC, WebUSB, and other features, we're getting the cleanest app and platform model we've seen so far.

The key architectural questions about remote communication involve security, efficiency, stability, portability, etc.  While it isn't perfect, web tech provides a nice enough model for expressing the highest level logical communication needed in secure (enough for most purposes), flexible, efficient enough, and low latency enough for most purposes ways.  Solutions like Swagger, Go, and other modern techniques are much cleaner and simpler than previous clunky solutions.

Most of the most interesting web apps now run almost completely in the browser.  The server side sends the original page and code, manages authentication, then acts mostly as a database with minimal logic.  As long as the API doesn't rely solely on client-side validation and other things that could be gamed, it can still be secure.  Because it's now easy to run the same code on the front and back, complex validation could be done on the front-end for low latency and the backend for actual security, for instance.

There are plenty of things that could be better and will get better, but regardless the power & ease gap between web app development, for most situations, is only increasing.  Emulating any substantial subset of browser-level UI and other features in a non-browser desktop app is nearly impossible now.




-- Peter Fairbrother

sdw