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.)