Lists Home |
Date Index |
Michael Kay wrote:
> No, I don't think that's a fair characterization at all. The size of the
> task is no larger than that tackled by XSLT 1.0, which was produced in 18
> months, and which involved at least as much innovation. The problem is a
> social one: there are at least five individuals on the XQuery WG who could
> have produced a perfectly usable spec two years ago if the other four
> individuals had not been present.
I agree that the design would have been done a lot faster if fewer
people were involved, but I don't think this is the only or even the
I do think that XQuery required much more innovation than XSLT. I think
that DSSSL solved many (perhaps most?) of the really hard problems for
XSLT, and we hard a really good idea what it could and could not do.
There were many prior XML and SGML query languages, and many database
query languages, but XQuery is significantly different from any of them
for reasons that go to the heart of programming with XML. SQL and OQL
are not well suited to the semantics or the data model of XML - XQL
solved the semantic mismatch with XML, but was still only a way of
retrieving information. XML-QL was great at doing arbitrary
data-oriented transforms that could be optimized, but it ignored most of
the structure of XML. YATL had about the same virtues as XML-QL, with a
more compact syntax. The XML Query Working Group took all the use cases
submitted, and tried to solve them with about 7 different existing
languages, and none were good at the full spectrum of problems to be solved.
For XQuery, the nearest equivalent to DSSSL was Quilt, which was first
presented in mid 2000. Quilt solved most of the use cases fairly well,
but before Quilt, some crucially important innovation had not occurred.
Quilt had some syntactic issues that needed to be fixed, and it had not
thought seriously about types, namespaces, XML Schema, compatibility
with XPath 1.0, coordination with the XSL Working Group, etc. I suspect
that namespaces and XML Schema probably cost us about a year, and
coordination with XSL and XPath probably cost us about a year, but these
two years of effort did improve the final product. I think we also did a
good year's worth of useful changes to the language. So that's a total
of 3 years, bringing us up to 2003. But that doesn't factor in time for
the Formal Semantics, which probably cost us at least another year.
Although it is not equally important in all environments, for some
implementations, including ours, the Formal Semantics is turning out to
be very valuable. And at least another year goes in to processing tons
of detailed feedback from companies that are members of the Working
Groups and a few comments from the general public.
I agree with Michael that we could have been done by now. I personally
think that having several individuals involved in the design has
generally improved the language, and I don't think it has cost us as
much time as Michael does. In the early days, no one individual really
knew what was needed to design this language well. I agree that there
are now at least five people who could do it, and that's partly due to
having learned from each other.
But we have been solving some pretty important issues. We finally fixed
some important namespace-related issues just last week, and the last
published Working Drafts vastly simplify construction and validation.
And the discussion among a group of people has been important for
getting this design right.
But there's really not that much real work that still needs to be done.
We have to dispose of the outstanding issues, and stop spending too much
time on issues that don't matter. And we have to do a thorough enough
review of our own documents so that Working Group members don't submit
the lion's share of 1200 public comments when the next Last Call drafts
go out, as they did the last time around
If there were only one engineer, no public comments to deal with, no
existing specs to be compatible with, and no formal process, this would
indeed go a lot faster. Hey, with three engineers, that's what we did
with Quilt, and we did that in about 5 months. With a group that small,
you don't need much process. But in the environment we now live in, if
we don't master the process, we will never get done.