Thursday, 02 March 2000
.....
In his essay, `` We Make Shitty Software'', Dave Winer describes the software development process and explains why software has lots of bugs but that's OK because they get fixed in the next release.
This is OK for software because the bugs are fixed by one group of developers and only affect one group of users -- single applications don't have ``network effect''. Is this OK for standards? NO! Standards are implemented by many diverse development groups and bugs in the standard affect several diverse groups of users. Standards have network effect, one bug in a standard is multiplied by all the development groups that have to work around that bug and all the groups of users who have to interoperate with different versions of software.
Extensible Markup Language (XML) is often criticized for being more complex than necessary. The complexity of XML, it's argued, leads to even more complexity in the standards that build upon XML. To back up their criticism, several developers have begun work on Simple Markup Language (SML). If SML achieves its goal of reducing complexity in XML, it follows naturally that the migration of XML standards to SML will reduce their complexity as well.
But where does that leave us? Truth is, there are a large number of people who don't support SML simply because it will require so much effort to overcome the momentum behind XML. XML has had huge amounts of network effect, there are literally thousands of XML software developers and hundreds of thousands of XML users. You don't simply say, ``OK, version 2 is out, please upgrade''.
On March 1st, the World Wide Web Consortium (W3C) held a Birds-of-a-Feather (BOF) session at XTech 2000 on XML distributed application protocols. Featured in the discussion were Simple Object Access Protocol (SOAP) and XML-RPC (remote procedure calls). SOAP is a rigorously developed protocol that compares well with some of the biggest names in distributed computing. XML-RPC is a very simple protocol that shows how simple distributed computing can be.
Because of SOAP's applicability to a large number of applications, it was proposed (lightly) at the BOF that SOAP, possibly with further development, be adopted as W3C's XML distributed application protocol. I agree with that in part, I would only ask that there be room in the protocol space for something that is much simpler.
By coincidence, Dave Winer is also a principal developer of and a major proponent of XML-RPC. Dave reported on the BOF in another essay, ``The Two-Way-Web'' where he proposes that the W3C adopt XML-RPC. XML-RPC is often criticized too, for being somewhat limited in applicability and scalability.
I'm one of those critics, I oppose adoption of the current XML-RPC spec, XML-RPC as-is should not gain more network effect. I've implemented XML-RPC and watched it's use and development over the last two years. I agree with the simplicity of XML-RPC and I know it's value. I also believe it's possible to develop an equally simple protocol that doesn't have the limitations of XML-RPC.
It was suggested at the BOF that SOAP might be able to be modularized or scaled down to allow for simpler implementations, I'll be joining that effort. I will also present a protocol that I believe is as simple as XML-RPC but more scalable and without it's limitations.
(Network effect -- Network effects occur when a person's benefit from using a product or technology increases with the number of people who also use that product or technology.)
This is We Make Shitty Standards <http://monkeyfist.com/articles/293>