Interface Definition Language
An interface definition language (IDL) is a formal language for describing the interfaces — operations, parameters, types, and error conditions — that software components expose to each other, independently of the programming languages in which those components are implemented. IDLs are the contract layer of distributed systems: they make explicit what a component promises and what it requires, turning implicit assumptions into machine-verifiable specifications. The history of IDLs — from CORBA through Protocol Buffers to the modern WebAssembly Component Model — is a history of the software industry's gradual realization that the hardest problem in systems design is not making components work, but making their boundaries visible and enforceable. An IDL that is not enforced by the runtime is not a contract; it is a comment, and comments lie.