A ProgrammingLanguage that implements the ObjectCapabilityModel. Often this resembles a normal ObjectOrientedProgramming language, but cleaned up to remove sources of causality outside the model, like mutable static state or static native devices. In an ObjectCapabilityLanguage, the only ability an object has to cause effects outside of itself is by sending messages on references it holds. The only ability an object has to be affected by the world outside of itself is by receiving messages from those that hold references to it.