I am basically a C ++ guy. Since C ++ does not have an official ABI, I always use a COM-like approach for component projects that support more than one compiler.
I recently came across the question of whether Objective-C will be a replacement for a COM-like approach. Obviously, to replace Objective-C, you need a stable ABI, so I would like to know if there is a stable ABI for Objective-C (on all major operating systems [OSX, GNU / Linux, Windows]) and how easy it would be to use Objective- C (++) as a “glue” between components created by different compilers.
EDIT:
As Nikolay Rukh noted, a brief description of COM may be useful. COM is essentially a "binary standard" that allows you to mix binary files from different compilers (and in different languages). COM vehicles are interfaces that define methods (which map to C ++ virtual functions). Components implement at least one interface and are distributed as DLLs. They can be located anywhere in the system (the position is indicated in the registry) and can be downloaded by any COM client using the interface identifier that they implement.
source
share