Dog is a programming language that makes it easy and intuitive to create social applications. A key feature of Dog is built-in support for interacting with people. Dog provides a natural framework in which both people and computers can be sent requests and return results. It can perform a long-running computation while also displaying messages, requesting information, or sending operations to particular individuals or groups. By switching between machine and human computation, developers can create powerful workflows and model complex social processes without worrying about low-level technical details.