Arrays: new and old keys, i

David Bovill david at architex.tv
Fri Sep 12 07:06:45 EDT 2008


2008/9/12 John Vokey <vokey at uleth.ca>

>
> Can anybody explain what the new array format provides that the old did
> not?


Hi John - I'll give it a go. In simple terms it promises to replace my use
of the XML externals, and other general hierarchical data structures I use
frequently. I for one couldn't figure out a neat and fast way to put some
arbitrary piece piece of XML into a native Rev based data structure. To his
credit - Kens excellent XML library does just that - but that's no mean
feat, but I should think there is a good chance Ken will take a look at the
new array structure to simplify and hopefully speed up the library. The per
case based hacks you can create in Rev are great, and often faster, but I
have too many of them, and they are difficult to maintain and can get
complex when they involve recursion - so I'd rather bury that stuff in a
library.

This is a big deal for me personally, as I deal a lot with XML (and more
recently JSON), from the internet, and for GUI work within Rev, I use
hierarchical tree widgets to display the majority of data.  I rarely now use
flat list displays. I use hierarchical outlines of one sort or another to
display thinga like handler, stack, object, and document outlines - or image
or video browsers for libraries etc. At the moment I use a mixture of hacks
- list based stuff, XML based stuff in Rev, XML based stuff using externals
- and they all do basically the same thing manipulate hierarchical data
structures. I want to do this simpler and faster, and I want to unify the
code base so that they share a common abstract native data structure, and
are much simpler to maintain across products and software releases.

As far as possible, I don't want to care if the data came from an RSS blog
feed, and Google Web Service, a Yahoo based JSON feed, a local XML file, or
a user manipulated treed widget - I want to get this data into rev and have
simple to understand and fast ways to get / set / delete and navigate around
that data. The new arrays offer the promise of making this simpler to do and
maintain. I'd also like to be able to use this code on my web server - and
I',m not sure but I for one never got the XML externals working there.

Maybe I'm wrong - maybe there is an easier and faster way to take XML and
store it as a native data structure in Rev? It would be an interesting
challenge to see how this would be done with the couple of functions Trevor
posted for converting XML back and forth? That way we could have two
versions of the same function - pre-3.0 and post 3.0 and compare them for
speed and complexity?



More information about the use-livecode mailing list