Lightweight Little Languages
XQuery is a standard language for doing queries over XML: designed carefully by some very skilled people to be superb at taking XML-structured data apart, sifting through it, and putting it back together. Our project's document generation subsystem involved taking XML-structured data apart, sifting through it, and putting it back together. Why was it _so_ much more agonizing to do that in XML than in Java? How can one design a specialized query language so that it is _nicer_ to use than a general programming language?