[REBOL] Re: XML / dialects
From: gavin:mckenzie:sympatico:ca at: 7-Jan-2002 11:02
*sigh*
This is a topic dear to my heart. I just wanted to express some opinions.
Brevity isn't my strong point, so feel free to save yourself from reading a
*long* post of one guy's ramblings and reach for your delete key.
First, to respond to Brett's original question...I agree with what Petr
said: XML is a "meta-language". It is a means to create domain-specific
markup languages that may be used to represent documents (like XHTML), data
(like so many of the e-commerce XML languages), or declarations that impact
process (such as messaging, XML-RPC, SOAP, etc.).
Every minute of every day during my job I deal with XML and its many
children. I am passionate about the stuff. I'm the W3C AC Rep for my
employer. I've led development teams that have built implementations of
XML-DOMs, XML-Digital Signature, Schema tools, etc. I've out-sourced
development of XSLT and XPath engines. Truly, XML is good.
Indeed, there's been alot of over-hype on XML and it ain't all perfect (some
of it can be downright dreadful), but it is still IMO the biggest thing
since the Web. Yeah, I know that sounds like a tired pitch line...but
really, I believe it.
And, it is pretty old stuff. Not paying any attention at all to SGML's
history, we can still say that XML is just a month away from its fourth
birthday. That's old. IMO really old.
The list of other technologies that has descended from XML is long, and
still growing.
Though I am primarily a lurker on this list, and I'm far from a REBOL
expert, I got into REBOL two years ago. I was overjoyed by a language that
wasn't trying to be all things to everyone, was (mostly) easy to write (and
easy to read!), was small and ideally suited for the Web.
Within two days of playing with REBOL I sent an email to REBOL tech asking
Um, where's the XML parser?
I assumed that I must have missed it in the
docs. I also expressed my views that XML was destined to be the very air
that Web applications breathe and the REBOL could (with some work) position
itself as the XML processing script language of choice. I must say that I
was truly pleased by the fact that REBOL did respond to my emails, and we
exchanged a couple more. I was told that an XML parser was coming.
I stopped playing with REBOL for a while, came back, and lo 'parse-xml' had
appeared. Maybe it was there all along, I dunno.
But it wasn't (isn't) a real XML parser; i.e. compliant. As a result of
parse-xml's non-compliance, I tried hooking up James Clark's world-class
EXPAT parser lib to REBOL with a beta version of REBOL/Command, but got
stymied by the call-back nature of mostly all parsers.
And of course, there's the little problem about lack of Unicode support in
REBOL.
Regardless, I had real ad-hoc work that I wanted to do with REBOL, and
(almost) all the information that I needed to process was XML. XML that
would often break REBOL's built-in parser.
Why is a real XML parser important to any software application or tool? My
employer, and the commercial software that I help to architect, have fallen
victim to the fact that we've had a few customers (who really were the real
victims) build hand-code XML parsers to process the XML that our software
produces -- and eventually their parsers break. Why? Because, invariably
from one version of our software, to the next, we make changes to our XML
formats.
But, and here's the rub, those changes often aren't changes that materially
alter the XML formats -- that is, they wouldn't upset a real XML parser or
change the "schema" of the format, but they wreak havoc with people who have
built hand-code parsers that don't behave as robustly as a real XML parser
would. Since then, I've tried to get the word spread to all of our
customers around the globe that they need to use real XML parsers. The
contract between our software and our customers is XML 1.0, not a subset.
Anyway, I love REBOL. I don't want to use some other script language when
I've got ad-hoc processing of XML to do. Those other languages may well
have robust XML tools and be web savvy (take you pick: Perl, Python, Ruby,
PHP), but I can be more productive with REBOL. So, I trundle on hoping that
one day I'll see the foundation for an XML framework in REBOL. That one day
I'll be able to espouse the virtues of REBOL instead of Perl (or some other
language) for building their 'glue' applications that work with my
employer's software.
And without a strong foundational layer of XML support, how will I (or my
customers) ever be able to use REBOL to do higher-level XML work? XML work
eventually focused on things like XML-Schemas, XML-Digital Signatures,
ebXML, and so on.
Until then, I'll have to be hopeful. And, as I encounter gaps in REBOL's
XML foundation, I'll try to make available bits of my own REBOL code to
bridge the gaps, and I'll also leverage the work of others in this great
community of people who love REBOL.
But gee...fourth birthday of XML on Feb 10 2002. That's old.
Time's-a-wasting.
When does hopeful optimism become something less?
Gavin.