Object-based parallel and distributed applications are becoming increasingly popular, driven by the programmability advantages of component technology and a flat shared-object space. However, the flat shared-object space introduces a performance challenge: applications that rely on the transparent coherent caching of objects achieve high performance only on tightly coupled parallel machines. In distributed environments, the overheads of object caching force application designers to choose other solutions. Consequently, most applications sacrifice programmability, relying instead on either the explicit coherence management of cached or on vastly different middleware abstractions such as multicast and events. In this paper, we describe object views — language support for efficient object caching in parallel and distributed computations. Object views specify restrictions on how computation threads can use an object, providing the underlying implementation with information about the pot...