[Laszlo-dev] JSON RPC
Henry Minsky
henry.minsky at gmail.com
Fri Jan 5 20:31:44 PST 2007
well said, Don
>
> 1.
>
> Don Hopkins <http://www.DonHopkins.com> said,
>
> December 20, 2006 at 1:42 pm<http://scripting.wordpress.com/2006/12/20/scripting-news-for-12202006/#comment-26362>
>
> Dave, I would have expected you to be one of the first people to
> understand an appreciate the strengths of JSON, because they are so
> practical and simple.
>
> One huge practical advantage to JSON over XML in the web browser is
> that you can load JavaScript from any site, while you're restricted in which
> sites you can load XML from. I have no idea why browsers insist on limiting
> where you can load non-executable XML from, when they don't bother to limit
> where you can load executable JavaScript from, but there you go: that's how
> it is, and there's nothing anybody can do about it. JSON nicely works around
> that limitation, instead of holding its breath and waiting until the world
> comes around to being fair. Surely you can appreciate that practical
> advantage.
>
> Another practical advantage is that it JSON is the absolutely
> fastest way to convert text data into a usable native format. Even if the
> XML parser could be as fastas the JavaScript parser, it parses the text into
> many fluffy XML DOM nodes (possibly including text nodes for intermediate
> white space you have to skip over), which is yet another layer your code has
> to go through to get any useful work done. Instead, JSON parsing DIRECTLY
> results in tight JavaScript data, which is the most optimal format for
> processing with JavaScript, with no wasteful layers of indirection and
> generic DOM apis that require lots of effort for extraction and type
> conversion. XPath expressions and DOM access are NEVER going to be as fast
> as direct array access in JavaScript. JSON simply has fewer layers than XML,
> so it's way faster and uses much less memory, and it's easier to use because
> you hve direct access built into the language, instead accessing data
> through a DOM api.
>
> The other advantage is that it's a more-or-less universal lowest
> common denominator between languages, high enough to be useful, but not too
> low. XML has many features than most languages don't support and many
> applications don't need, because they're really just working with arrays and
> dictionaries, and don't need all the features of XML.
>
> JSON makes it possible to use a bunch of different languages
> together easily. And there's no way to get around the fact that JavaScript
> totally rules in the web browser, but has a lot of quirky weaknesses that
> must be worked around. And JSON serves both purposes quite practically
> (interoperating with other languages, while taking advantage of JavaScript
> peculiarities and working around its limitations). And it's that practical
> approach that I would have expected you to appreciate.
>
> -Don
>
>
>
> 1.
>
> Don Hopkins <http://www.DonHopkins.com> said,
>
> December 20, 2006 at 2:08 pm<http://scripting.wordpress.com/2006/12/20/scripting-news-for-12202006/#comment-26373>
>
> Just to be fair, there are some wrinkles in JSON's universality.
>
> Here is a possible weakness with PHP processing JSON: PHP arrays are
> the same as PHP dictionaries, so how does PHP know how to convert an empty
> array/dict to JSON, so that it can survive a round trip without changing
> type?
>
> If I read in the json [] to PHP, then write it back out, how does
> PHP know to write out {} or [], since they are the same to PHP, which has no
> separate dict and array types? The same problem applies to dictionaries
> whose keys just happen to be consecutive integers, but the zero length array
> and dictionary are a more common example.
>
> Another wrinkle in JSON's universality is that the Flash player does
> not have a built-in JavaScript parser, so in Flash's version of JavaScript,
> JSON does not have the advantage that it's trivially easy and efficient to
> parse. (People have written JSON parsers in Flash of course, but they're
> nowhere near as fast as the built-in XML parser.)
>
> So in Flash, XML is still the preferred format, but it still uses a
> lot of memory: The Flash XML parser parses XML into JavaScript data
> structures that are more complex than JSON (twice the number of layers,
> three times the number of structures. An XML node gets parsed into an object
> with an attributes sub-dictionary and a contents sub-array).
>
> The absolute most efficient way to load data into Flash is by
> loading and executing compiled binary SWF files, which can contain
> executable byte codes and binary literals that directly creates the data
> structures you want to send.
>
> If you want to minimize the amount of data sent to the Flash client,
> the server can encode XML (or JSON) as a SWF file, and send it as compressed
> binary data.
>
> The OpenLaszlo's server can compile XML and JSON into SWF, because
> years ago Flash's XML parser was much slower, so it was worth parsing the
> XML on the server side (plus the added advantage that the server could proxy
> XML from any domain). But now Flash's XML parser is much better, so it's
> more efficient to download XML text to parse in Flash.
>
> However Flash still has its own restrictions on which domains you
> can download SWF or XML from, so Flash can't take advantage of browser-based
> JavaScript's ability to load JSON from any domain. So because of Flash's
> restrictions (and browser bugs like IE6's refusal to deliver compressed http
> content to plug-ins), you sometimes end up having to write a server-side
> proxy anyway, instead of downloading XML directly into the Flash player.
>
> -Don
>
>
>
>
>
--
Henry Minsky
Software Architect
hminsky at laszlosystems.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20070105/dad114cf/attachment.html
More information about the Laszlo-dev
mailing list