Steve Vinoski, REST, and distributed systems

Posted on June 20, 2009 by Tommy McGuire
Labels: software development, protocols, http, REST
Steve Vinoski, co-author of Advanced CORBA Programming with C++, has a couple of podcasts that I just discovered; based on his columns in Internet Computing, Welcome to "The Functional Web", and Scala and Lift - Functional Recipes for the Web. While poking around, I ran across a few previous columns that I wish everyone I work with who deals with distributed systems (i.e. everyone I work with) would read.

The latter, in particular, has this gem:
Developers who favor technologies that promote interface specialization typically raise two specific objections to the REST uniform-interface constraint. One is that different resources should each have specific interfaces and methods that more accurately reflect their precise functionality. This is rooted in the fact that most programming languages (especially those that are object-oriented) promote the development of specific interfaces, procedures, and methods for different software artifacts. This notion is so ingrained in many developers’ minds that they consider it counterintuitive to apply a uniform general-purpose interface to anything — even to the heterogeneous services and resources found in a typical distributed system. Yet, those who raise this objection fail to properly consider the effects of networking and distribution.

...thus summing up roughly thirty years of what's-wrong-with-RPC arguments.


Hi Tommy, glad to hear you like those columns. If you're interested in more "what's wrong with RPC" arguments, you might also find these QCon London 2009 slides interesting.

Steve Vinoski

Excellent presentation! I wish I had been there, particularly for that Historically bad ideas track.

Tommy McGuire
active directory applied formal logic ashurbanipal authentication books c c++ comics conference continuations coq data structure digital humanities Dijkstra eclipse virgo electronics emacs goodreads haskell http java job Knuth ldap link linux lisp math naming nimrod notation OpenAM osgi parsing pony programming language protocols python quote R random REST ruby rust SAML scala scheme shell software development system administration theory tip toy problems unix vmware yeti
Member of The Internet Defense League
Site proudly generated by Hakyll.