[erlang-questions] rpc is bad? (was Re: facebook chat server)

Steve Vinoski <>
Fri May 23 19:54:36 CEST 2008


On 5/23/08, Raoul Duke <> wrote:
> > thought about the weaker spots in most RPC protocols.
>
> is this-all presumably pretty much the same thing as the classic
>  fallacies of distributed computing?
>
>  (although that list seems to keep growing random e.g.
>  http://feedblog.org/2007/09/23/distributed-computing-fallacy-9/ :-)

It's related to the fallacies, yes. The fundamental problem of RPC,
which is trying to make remote calls look local, is based on
essentially trying to ignore the problems covered by the fallacies or
trying to pretend they don't even exist. You'll also find that many of
my columns for example reference the classic "A Note on Distributed
Computing" by Kendall, Waldo, Wollrath, and Wyant:

<http://research.sun.com/techrep/1994/abstract-29.html>

which covers some of the same territory. But the thoughts about the
impedance mismatches between IDLs and programming languages don't show
up in the fallacies at all and are generally often overlooked. I've
written about them here and there over the years, for example:

<http://steve.vinoski.net/pdf/IEEE-Just_A_Mapping_Problem.pdf>

but I don't know of any definitive reference one can point to for this
issue. In that column, BTW, written a few years ago back when I was
still foolishly trying to make Web services work, I argued in favor of
IDLs over using a programming language to specify distributed
services. Given the choice of the two, I still strongly believe that's
correct, but today I would take a third option and argue against both,
as I did in my Mar/Apr 2008 column:

<http://computer.org/portal/pages/dsonline/2008/04/w2tow.xml>

Today I think the impedance mismatch problem is worse than ever,
thanks to people who think they can sit comfortably within Java or C#
and just slap special programming language annotations to their
classes and methods so that tools can reverse-generate IDL and WSDL
from their code. It's the height of laziness and ignorance to think
that you can sit within the confines of a single language and generate
from it a language-independent distributed system that will avoid all
the impedance mismatch problems and distributed computing fallacies.
The people who push such tools and approaches ought to know better as
well.

--steve



More information about the erlang-questions mailing list