Players in HTML5 - ETA for Full Functionality?
Richard Gaskin
ambassador at fourthworld.com
Thu Feb 25 16:36:14 EST 2016
Matt Maier wrote:
> Thanks for that overview Richard, it helped me!
If you read that post to the end you should get a medal. :) More
long-winded than even my user group presentations. Glad it was useful.
> Given option (b), will the entire livecode engine have to run
> client-side, or will there be a way to let the engine run on a server?
That's a deep question.
An old friend of mine suggested, "The key to programming is finding the
right dividing lines."
That applies to so much, from factoring code to managing teams, and with
client-server apps I don't believe there's a single best answer.
Consider three example apps: calculator, animated greeting card, and
RSS aggregator.
With the calculator you could go either way, depending on the nature of
the calculation. If it's just arithmetic it probably makes the most
sense to do it all in the client, But I have one medical app where the
caluclations are based on values in lookup tables that would be
cumbersome if we had to first download them to the client, so for that
the client is pretty slim and it just sends the input values to the
server who does the lookups and the arithmetic on them and sends back
the answer.
An animated greeting card could conceivably be done on a server using a
canvas object on the client side with web sockets or other method by
which the canvas gets updated from the server for every frame. But
animations are computationally expensive, and if serving a lot of user
the server would have to maintain quite a high load, and pushing out
each frame is a lot of ongoing traffic, so for that one I'd put
everything on the client.
With an RSS aggregator, all the client really wants is a list of news
stories, but to get those news stories requires some process to download
them (and hopefully politely, within the update limits specified by the
publisher in the feed), parse them, sort them, filter out the irrelevant
ones, rank the rest, and then wrap 'em up in HTML for display. If the
client had to do all the work it would put more load on the publishers
than is truly needed, and require a lot of work making for a slow UI.
If you had a server-side process that maintained the feeds in question
then most of the work is done only once, publisher servers aren't
overtaxed, and the client gets only the final output HTML (or perhaps
XML or JSON in which the client could do the HTML wrapping itself).
Three simple and fairly common uses cases, but only one of them has
anything close to a simple answer. Like so much in life, we just have
to look at the problem at hand, pick our dividing lines as best we can
with what we can know at the outside, and be willing to revise as we
learn more.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the use-livecode
mailing list