Stewart Stremler wrote:
It does a crappy job for exchange. However, it has one primary
advantage that led to its being adopted:
It is a *standard*.
Anything can be a standard. Why would managers push one over the other?
Because XML has been sold to them, and they've been promised some rather
stupid features. "If our product talks XML, it can talk to any other
program out there that talks XML, and we won't have to bother spending
any time integrating different products."
Riiiight.
Actually, most of the managers I know who put an XML checkbox on their
requirements thought exactly like I did. No obscure, encrypted, binary
packed format--but then I was working with EDA tools vendors who are
*notoriously* bad about interoperability.
XML just gave us politically acceptable way to push back.
No. How things are read in and written out is standardized. The interpretation
is still left up to the programmer. XML means we get a generalized
lexer and parser, but then, given a decent BNF, lex, and yacc, that
part wasn't the hard part anyway.
BWHAHAHAHA! ... ummm ... sorry ... decent BNF <snicker> ... lex and
yacc not hard <snnrrrrkkk> ... that really got me. Spoken like a true
computer scientist ...
And when was the last time a company *ever* produced a BNF for its data
format. Please cite. I can't think of *one* example. Let alone a
consistent, validated BNF.
To top it off, lex and yacc produce C code that's convoluted even by C
standards. Sorry. I have better things to do with my time than debug C
parser code. And none of the other parser generators in other languages
have anywhere near the mindshare lex and yacc do.
In addition, lex and yacc *still* don't work with Unicode. XML got a
*big* boost because it said "XML does Unicode. Period."
(I guess what bothers me is that most of what I see XML used for is
either key-value pairs, or it's something that's gotten fiendishly
complex to allow encoding non-hierarchial data; the result is a net
loss for managing complexity.)
Even if it's key-value pairs, it's still fine. XML handles escaping and
encoding all characters and pulling them in.
That's actually a really big deal. Try naming a variable in EDA tools.
If you use anything other than [A-Z][A-Z0-9]* you are probably going
to get maimed. All because escaping characters is a boundary condition
that never gets tested.
-a
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list