A problem for "Web as distributed programming paradigm"

Russell Turpin deafbox@hotmail.com
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 
environment. 

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

Russell