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