TL;DR
インタフェース記述言語(Interface Description Language)。データ型とインタフェースを、特定のプログラミング言語に依存しない形で記述する言語の総称である。
なぜ必要か
Wikipedia によると、IDL を使うと、ある言語で書かれたプログラムが、別の言語で書かれたプログラムとやり取りできる。RPC では、通信の両端で OS や言語が違うことがあるので、その橋渡しとしてよく使われる。
例
Wikipedia には、次のような IDL が挙げられている。
- Protocol Buffers(Google)
- Apache Thrift、Avro IDL
- CORBA の OMG IDL、Microsoft の MIDL
- OpenAPI Specification(Web API 向け)
- WSDL(Web サービス向け)
- Web IDL(ブラウザが実装するインタフェース向け)