This document discusses cross-language integration and cooperation between programming languages. It begins by explaining the reasons for integration, such as lack of resources and doing things correctly. It then describes common approaches and frameworks for integration using messages, resources, and procedures. Specific integration solutions and architectures are provided as examples, like Apache Thrift. The document analyzes the different approaches and provides a sample pivot table comparing messages, resources, and procedures. Overall it provides an overview of why and how to integrate programming languages as well as examples.