A problem for "Web as distributed programming paradigm"
Thu, 23 Aug 2001 23:06:13 -0500
Jeff Bone asked me to think about the REST stuff,
and my thinking took me to a rather brute, perhaps
trivial, realization. (1) Some people are hoping
that Web protocols evolve into a true distributed
programming paradigm. (2) Right now, they aren't.
HTTP and SOAP are both IPC mechanisms.
So .. it might be worth asking: Why aren't these
used as distributed programming paradigms?
(Or maybe you're wanting to ask: Why doesn't
Russell think these are distributed programming
paradigms? Doesn't he buy books through
Amazon, read Slashdot, and use a variety of
other sophisticated websites?)
In answer to the second question, and approach
to the first, let me offer one criterion of a true
distributed programming paradigm: the distribution
is transparent to the programmer. Linda has
this quality. So, to an extent, does DCOM. In
both cases, you can use the formalism to write
programs that are never intended to be distributed.
And this works, not just as a novelty. I could use
either to write -- say, a program for simulating
the growth of anthills -- that runs just on my PC.
There are numerous COM objects that will never
execute anywhere but in-process, yet the code
that uses them does so exactly as if they
reside on a dusty Pentium box in Timbuktu.
Linda and COM both provide useful ways to
think about how to structure a system into
reusable components, even in a non-distributed
But even if I ran a local webserver, and even
if using it for program decomposition weren't
dirt slow, I would be hard pressed to think
*why* I might use HTTP to structure a program,
except where distributed execution is irrelevant.
Yeah, when I have to do IPC, well .. it's the
Web, so HTTP is always one of the top
candidates. But I always and only use it where
IPC might occur. I never view HTTP as a
general way to structure software. And I've
never seen it used that way. Why is that? It
seems to me that that is key question, if one
wants to view HTTP as a distributed
programming paradigm. (And if you don't,
then you should have stopped reading this
diatribe a few paragraphs back.)