?

by havoc

I think this is a
debate I didn’t intend to start
– I concur that yes, there are
lots of formats you can send over a socket and you can wedge most use
cases into most of the formats if you try hard enough. A meaningful
discussion of protocols though would recognize that “could possibly be
made to work” isn’t how one chooses a technology; you need to know the
context of the usage – desired properties and tradeoffs, who is doing
the coding and their knowledge, what’s available on the platform,
needs of customers or co-developers, whatever it is. Then pick
something appropriate. It’s not about One True Way.

As you illustrate, REST is a stupid choice for a desktop
bus. I don’t see how that’s relevant to Amazon’s APIs or
to D-BUS.

My offhand remark about SOAP (in a very long post about something
else) was intended to convey that personally I wouldn’t mess with SOAP
in the context of looking up some simple details of an Amazon item. It
must not be that controversial a comment if 85% of Amazon API users
made the same decision. But if Amazon only had SOAP (or CORBA, or some
made-up protocol) I’d use it and not get especially hot and
bothered. If I were using C# and already knew the SOAP APIs I’d
probably use them then too, but I’m not going to install and learn a
major new technology and API just to do something really simple.

For the record I’m not trying to say “SOAP sucks” or something. I
don’t know much about it or care either way until I have reason to use it.

As for D-BUS, it’s a protocol/library that has certain properties that
I felt were useful for two
use-cases
in the specific (social and technical) context of
GNOME/KDE/Linux. The case that funded/motivated the D-BUS project was
the systemwide bus, and D-BUS remains to my knowledge the only project
that even attempts to implement such a thing for Linux. It seems to
work fine for that. D-BUS tries to support a desktop session bus also,
but secondarily, and it hasn’t been much hacked on in that
context. That’s why GNOME still uses Bonobo and KDE still uses
DCOP. Beyond those two use-cases, D-BUS has no aspirations to be an
ISO-certified scalable enterprise middleware or Internet web services
protocol, nor would I ever suggest it (or use it myself) for those
purposes.

I’m happy to debate which protocol is appropriate for a particular
context, assuming I have any knowledge of and interest in that
context, but comparing protocols in the abstract makes no sense to me.
There must be at least hundreds of thousands of protocols spoken over
sockets out there in active use and it doesn’t seem to be killing
anyone. It certainly isn’t keeping me up at night.

(This post was originally found at http://log.ometer.com/2005-11.html#26.4)

My Twitter account is @havocp.
Interested in becoming a better software developer? Sign up for my email list and I'll let you know when I write something new.