GraphQL and the Inversion of XML (some sort of)

I stumbled upon John Resing’s GraphQL (jQuery creator, by the way):

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more

(Bold are mine, from GraphQL)

It is funny to see the idea behind GraphQL: GraphQL define a client-oriented specification and it is the exact opposite of 1990-2000 specifications, like XML, CORBA IDL or RMI.

For instance XML specification is a server driven specification, with strong versioning and namespaces.

Client must adhere to spec, and you can also enable extra server-side validation.

GraphQL is a version-free super-retro compatible query language, born for the Digital Mobile needs of the last ten years.