私は主にC++の人です。C++ には公式の ABI がないため、複数のコンパイラをサポートするコンポーネントの設計には常に COM のようなアプローチを使用します。
最近、Objective-C が COM のようなアプローチの代わりになるかどうかという疑問に遭遇しました。明らかに、Objective-C を代替するためには安定した ABI が必要です。そのため、Objective-C の安定した ABI が存在するかどうか (すべての主要な OS [OSX、GNU/Linux、Windows]) と、どのように簡単かを知りたいです。異なるコンパイラによって作成されたコンポーネント間の「接着剤」として Objective-C(++) を使用することになります。
編集: Nikolai Ruheが指摘したように、COM の簡単な説明が役立つ場合があります 。COM は基本的に、さまざまなコンパイラ (およびさまざまな言語) のバイナリを混在させることができる "バイナリ標準" です。COM の手段は、メソッド (C++ の仮想関数にマップされる) を定義するインターフェイスです。コンポーネントは少なくとも 1 つのインターフェイスを実装し、DLL として配布されます。それらはシステムのどこにでも配置でき (位置はレジストリで指定されます)、それらが実装するインターフェイスの ID を介して任意の COM クライアントによってロードできます。