Надеюсь, этот вопрос не будет слишком расплывчатым. Чтение через COM-версию и Don Box Essential COM-книги, есть много разговоров о "проблемах, которые разрешает COM" - и все они звучат важными, актуальными и текущими.
Итак, как проблемы, с которыми адресованы COM-адреса в других системах (linux, unix, OSX, android)? Я думаю о таких вещах, как:
- двоичная совместимость между компиляторами и версиями компилятора
- повторное использование двоичных компонентов
- компилирование приложения таким образом, чтобы оно зависело от времени выполнения, а не от времени загрузки (так, чтобы оно выполнялось даже тогда, когда отсутствует зависимость)
- доступ к библиотечным функциям с языков, отличных от библиотеки
- разумно низкоуровневые вызовы удаленной процедуры для компонентов, загружаемых в адресное пространство другого процесса.
- и т.д. (я уверен, что список продолжается)
Я в основном просто пытаюсь понять, почему, например, на Linux CORBA нет ничего похожего на COM, это вещь в Windows (если это имеет смысл). Может ли разработка программного обеспечения на Linux подписать другую философию, чем модель на основе компонентов, предложенная COM?
И, наконец, COM - это C/С++? Несколько раз я сталкивался с комментариями людей, говорящих о том, что COM "устарел" от .NET, но не объясняет, что они подразумевают под этим.