[Adding back the list - I assume dropping it was an accidenty]
On 04Mar2019 1234, Neil Schemenauer wrote:
On 2019-03-03, Steve Dower wrote:
In my opinion, you can dislike many of the Windows-specific "enhancements" around COM (like DCOM, etc., and I do dislike them), but the core concepts are very well proven, including being used from JavaScript and .NET (fully GC languages). Perhaps moreso than JNI?
Thanks Steve. You are correct, we should learn from COM too. Do you have any suggested references? I poked around some in the CoreCLR repo on github. E.g. this was pretty interesting:
https://github.com/dotnet/coreclr/blob/master/Documentation/botr/exceptions.md
Are there documents in the open source "dotnet" that would be relevant to the COM design implementation? I think a challenge with COM is that it is more comprehensive and therefore more complicated. So, for outsiders, it could be more difficult to understand how it works.
I'd suggest looking at the design notes here instead:
https://github.com/Microsoft/xlang
This is the cross-platform implementation of the "core" of COM (basically, the cross-language ABI part without necessarily including the magic cross-process/machine and proxy/marshalling support that is considered part of COM on Windows).
There is also a tool in that repo for generating Python C extensions to project objects defined in xlang/COM into Python. Since most of the new Windows API (from Win8 onwards) is defined like this, that's their first examples, but it's not at all tied to Windows.
Cheers, Steve