Why networks aren't programmable (or, why programs aren't protocols)

Abstract For 25 years now, since the early work on RPC in the early years of the Arpanet, computer scientists have devised programming languages that would simplify the design and implementation of distributed applications. Yet today the phenomenally successful Internet employs simple text-based protocols (HTTP, SMTP, etc.) and the phenomenally successful Java programming language relegates RPC to a library (RMI). Why aren't we using distributed programming languages to develop distributed applications? The reasons are both technical and commercial. This talk will discuss the commercial trends in distributing computing and identify some of the technical obstacles to the commercial application of distributing programming techniques.