← Back to context

Comment by masfuerte

3 months ago

COM [1] was a solution to these problems thirty years ago.

In-process it's just function calls. Cross-process COM has automatic marshalling for standard types ("automation types") or you can define custom marshalling that does whatever you want.

WinRT [2] is a more modern version. It builds on COM and (among other things) provides the basis for the latest UI frameworks in Windows.

[1]: https://en.wikipedia.org/wiki/Component_Object_Model

[2]: https://en.wikipedia.org/wiki/Windows_Runtime

A long time ago I worked on a project where we needed to distribute an in process COM object, so we moved it to DCOM, instantiated multiple instances, and that worked! All in all COM was a fairly pleasant technology. Not really that different than gRPC (e.g. idl vs. proto).