'Binary' XML is a complicated and controversial beast. It needs to balance the desires for read/write performance and wire data-size. I have been involved in multiple 'binary' XML efforts, and am exciting to see the W3C working to build a standard.

There is a lot of confusion about 'binary' XML. In my mind, 'binary' XML is all about enabling XML for scenarios that were not viable before. The main problem that Efficient XML solves, is how to leverage XML over low-bandwidth links. Too many people are focused on using XML to improve XML read/write performance. While XML can provide some gains there, improving performance will not significantly enable XML where it was not usable before, but improves existing scenarios. By focusing on the limited-bandwidth scenarios, Efficient XML is already enabling existing XML services to integrate with clients that did not have the bandwidth to support those services as raw XML. Computing processing power is still improving dramatically, but bandwidth growth has been much more limited.

None of this is to say that read/write performance is not important as well. I've always been an evangelist for efficient implementations and the last year has been exciting for me. I am amazed at how much performance can be achieved while still prioritizing wire efficiency. I have been repeatedly surprised by how fast we were able to make out Efficient XML implementation. I am very proud of our work and have no doubt that it blows the socks off any other 'binary' XML implementation with which I have been involved.

I look forward to seeing further progress from the EXI group. As happened with XML, I expect a standard 'binary' XML will enable entirely new classes of applications to leverage XML.

2 Comments:

Congrats, man!That sounds interesting. I happens to be working on some mobile application which involves C++ server and J2ME client and oh how I miss XML, but I can't use it here because of the perf.By any chance is there any free Efficient XML implementations already?