Sono principalmente un ragazzo C++. Dato che il C++ non ha un ABI ufficiale, io uso sempre un approccio COM-like per i progetti di componenti che supportano più di un compilatore.Objective-C stabile ABI
Recentemente mi sono imbattuto nella questione se l'Objective-C sarebbe un sostituto dell'approccio COM-like. Ovviamente per Objective-C essere un rimpiazzo sarebbe necessario un ABI stabile, quindi mi piacerebbe sapere se esiste un ABI stabile per Objective-C (su tutti i principali sistemi operativi [OSX, GNU/Linux, Windows]) e con quanta facilità sarebbe usare Objective-C (++) come "colla" tra i componenti creati da diversi compilatori.
EDIT: Come Nikolai Ruhe sottolineato una breve descrizione di COM può essere utile. COM è essenzialmente uno "standard binario" che consente di mixare i file di compilatori diversi (e in una varietà di lingue). I veicoli di COM sono interfacce, che definiscono metodi (che mappano le funzioni virtuali di C++). I componenti implementano almeno un'interfaccia e sono distribuiti come DLL. Possono essere posizionati ovunque nel sistema (la posizione è specificata nel Registro di sistema) e possono essere caricati da qualsiasi client COM tramite l'ID dell'interfaccia che implementano.
Si sta ovviamente affrontando le persone Objective-C. Sarebbe sicuramente utile se tu descrivessi "l'approccio COM-like" un po '. Non ho idea di cosa sia. –
@NikolaiRuhe grazie, l'ho appena fatto, spero che spieghi come funziona la COM (a livello base) – MFH
Attualmente ho la mia "propria versione di COM" - ma sans supporto per le lingue che non sono C++ ^^ Ho appena pensato forse qualcosa come Objective-C++ sarebbe un modo più elegante (qualsiasi cosa come la COM sembra essere poco elegante fino ad un certo punto [anche se lo nascondo tramite i wrapper nella mia attuale implementazione]). Non è come se il mio attuale design non fosse utilizzabile - in realtà sto generando un sacco di file [VTABLES, Wrappers, ...] da un linguaggio semplice, ma questo aggiunge ancora il sovraccarico di avere 2 programmi invece del solo compilatore. .. – MFH