[xquery-talk] XQuery and Web 2.0

John Snelson john.snelson at oracle.com
Thu Apr 24 12:58:39 PDT 2008

Weiqi Gao wrote:
> 2. The Web 2.0 crowd loves open source.  Everything they talk about is 
> open source.  Why not make all XQuery implementations open source, at 
> least free as in free beer?

There are already some good open source XQuery implementations, 
including XQilla, Saxon and eXist. I think we have this base covered.

> 3. The Web 2.0 crowd loves a language that's deep and weird.  Nobody 
> likes prototype based objects, yet JavaScript wins the day.  What does 
> XQuery has that mystifies people?  FLOWR expressions just doesn't cut 
> it.  Add something novel to XQuery, like Map-Reduce, or mandate tail 
> call optimization.  Better yet, add REST support.  Ruby on Rails can add 
> REST support, so can XQuery.

Simple and complete REST support is important, I agree.

However, I think XQuery is already way ahead of the map-reduce 
phenomenon. It seems to me that since XQuery is declarative the compiler 
ought to be able to work out how and where to parallelize your program, 
rendering explicit parallel algorithms obsolete.

> 4. The Web 2.0 crowd loves everything Google/Amazon/Yahoo! does.  Paul 
> Graham wrote an online store with Lisp and made millions, and has been 
> milking that fact ever since.  Have him, or someone like him, write a 
> CMS or something in XQuery, and then *sell it to Google* to make 
> millions of dollors.  And then say things like "Google used XQuery to 
> write their CMS."

I think what your saying is that XQuery needs a killer app - and I agree 
with that.

XQuery is still young - and it typically takes languages a long time to 
reach critical mass. It's clear that to get to that point, we need to 
build the XQuery community and evangelize - but we might have to be 
prepared to be the centre of the next revolution rather than getting on 
board for this one. How about moving forward with a few of these 

1) XQuery probably needs a standard native application platform like 
Rails to enable rapid web development. This also gives us a good chance 
to choose a name without "query" in it, which undoubtedly pigeon holes 
XQuery itself sometimes.

2) Build a community site with mailing lists and an open source module 
repository. Get the W3C (or otherwise) to bless the best modules and 
make them "standard". Evangelize like crazy, including having a voice in 
the Web 2.0 movement as well as other growth areas like massively 
parallel processing.

3) Explore distributed XQuery. Work like DXQ [1] is important, although 
I think that standard XQuery is sufficient and it's more important to 
work on compilers and virtual machines that enable automatically 
distributed code.

For instance, imagine a client side XQuery engine that can address a 
collection on a remote XQuery database - transparently shipping the 
important subset of the XQuery to be executed on that database, but 
handling the rest of the query locally.


[1] http://db.ucsd.edu/dxq/

John Snelson, Oracle Corporation            http://snelson.org.uk/john
Berkeley DB XML:            http://oracle.com/database/berkeley-db/xml
XQilla:                                  http://xqilla.sourceforge.net

More information about the talk mailing list