Lists Home |
Date Index |
On Thursday 24 October 2002 18:48, Paul Prescod wrote:
> > Yes they are. The locale database (timezones, month names, etc) on your
> > Macintosh is all stored in Plist format and used by core libraries.
> All of these libraries are under a single point of administrative
> control. How do I define a purchase order schema for PLists that will be
> used by thousands of independent processes?
The same way you'd do it with XML, or TSV, or anything! XML doesn't make
interchange any easier. You still need to agree what XML structure to use, or
what column headings to use, or whatever.
> > And these applications are....what? If we're designing an exchange
> > format, why must it have such a huge mismatch between how most data is
> > modeled and how it is exchanged?
> Do you think that SAP and Quicken use the same object model for a
> purchase order _internally_? Do you think that Word and Wordperfect have
> the same internal model of a document? Do you think that CorelDraw and
> Adobe FreeHand have the same internal model of a vector graphic?
Yes, I think so. The only differences between them are incidental, and if
they all used the same file format for interchange then the only differences
would be names of fields. And if this file format was nice enough to have
automatic mapping into software objects, not even that!
> It is impossible to align the internal model with the external
> representation AND allow competing internal models. I personally am not
> willing to allow my internal model to be dicated by the wire
> representation: that would be a classic confusion between interface and
Ha ha ha ha ha!
> Therefore I accept that when I write a vector graphics program, there
> _will_ be an impedence mismatch between the file formats I must deal
> with (under the control of standards bodies rather) and my internal
> representation (under my control). Such is life.
Not really! Quite a few 'standard' bitmap file formats are just dumps of the
memory structures used by the apps that first produced them - and they're all
roughly the same: header, palette, bitmap data. Other apps that use the same
file formats tend to use the same data structures because... they're already
there. I'm talking PCX and BMP off of the top of my head, and probably many
others from the Amiga / MacOS / Acorn camps too.
Sometimes you add extra pointers and indexing information when you load
something, when loading a text file it's quite common to slurp it into memory
as a character array but keep an array of indices of the starts of lines for
fast movement to a given character position. In almost all plain text
processing the in-memory and on-disk representations are *identical* with a
few extra pointers put in, maybe splitting lines out into a linked list at
> No, the question is not: "why does everyone disagree with you." The
I wouldn't say everyone disagrees with not using XML for stuff, it totalled
failed to take off in many industries I've seen. CSV still rules the wires
when it comes to exchanging databases, I'm afraid. We discontinued the option
of providing XML to our database because nobody used it.
> question is: "Why didn't the techniques you describe meet people's needs?"
They clearly do! The plists have been in use on macs for how long, Mr.
XML for data interchange has not filled a gaping need. An increased desire to
exchange data online came around, and XML was a hot new thing happening in
the W3C - aimed at replacing HTML on the Web at the time. So the people who
wanted to interchange data used XML. They would have done just as well had
XSLT and so on been developed on top of plists rather than XML, and maybe
better - plists have a richer basic data model, it's a tree with seperate
notions of key:value mappings and sequences rather than rolling both into one
(with the old problems of what to put in attributes and what to put in child
elements and mixed content and so on).
> If you want to understand, first invent vector graphics and purchase
> order models for plists (old-style or new, doesn't matter). Then write a
> schema (how?) for them so that you can communicate your wire
> representations to other programmers.
What would this exercise gain?
A city is like a large, complex, rabbit