Question

Can anyone please clear me about following terms in simple way

1-IDL Interface Definition Language 2-Interoperability 3-Portability 4-API

Thank you in advance

Was it helpful?

Solution

Interoperability generally just means that the system has been designed in such a way that other systems can communicate with it (either sending it information to store/process, request information from it, or both.)

An IDL is a meta-language that allows for a program (dll, etc.) to describe its inputs and outputs - it's an interface definition language because that's all it provides, an interface. Many specific implementations exist, but they're all very similar in function, most are similar in syntax, and they're ''all'' entirely declarative (they specify names of functions with inputs and outputs, but not what those functions ''do''). Often they're used specifically for calling functions via RPCs.

An API is more general than that - an IDL can specify an API, but so can a web service (SOAP or REST), or any other way for one application, dll, etc. to call functions in another. "Abstract" means just that - it's just the concept of having an interface to call a set of related functions without knowing or caring about their implementation. It's completely language independent.

Portability is a different concept - that generally means being able to compile or run your program on different platforms without a lot of work. Of course, APIs can help with that, if they abstract away platform differences. If you wanted to read images from disk into memory, for instance, you would do that very differently on Windows vs. Linux, somewhat differently on Windows 8 vs. Windows 95, and perhaps slightly differently in x64 vs. x86 versions of the same OS. If someone gave you wrappers so that you could compile or link to different files based on your platform, such that you could always call the same functions in your code and get back the same data regardless of platform, the functions themselves would be the API, the wrappers would be implementations of the API, and your code would be considered portable.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top