Messengers are autonomous objects, each capable of navigating through the underlying network and performing various tasks at each node. Messengers applications are written usingnavigationalcommands rather than thesend/receiveprimitives of conventional message-passing approaches. In this paper we contrast the two programming styles. From a software engineering viewpoint, the navigational style generally results in a smaller semantic gap between abstract algorithm descriptions and their actual implementations, which makes programs easier to construct, understand, and maintain. In terms of performance, Messengers programs are highly competitive with message-passing. We demonstrate these advantages using two concrete applications programmed using Messengers and PVM.