On Fri, 10 May 2024 at 18:59, Niall Douglas via Boost
On 10/05/2024 16:45, Peter Dimov via Boost wrote:
Niall Douglas wrote:
Did you (as in, you, Ben Craig, or one of the others) ever write this up in some form? I would certainly be interested in reading about it.
My memory is that it was mostly written up in private email exchanges amongst a small group. I wasn't always included in the discussion, either, so I only saw parts of the debate and design.
I do remember seeing at one point a private github repo with some code, and me writing an email saying something like "no no no that's all wrong, do X, Y and Z instead" :)
In any case I'm the wrong person to ask about this, as I wasn't invited into the main group who did most of the running. Ben I think would be a much better bet. I'll CC him there now to this.
I remember your having a paper about Microsoft COM, but if memory serves, I found it a bit difficult to understand. In particular, it wasn't quite clear what exactly was being proposed; as in, what needs to change, in language or library, and how.
That was a very, very long time ago.
That was the thing I built for BlackBerry while I was working there. Basically a modernised Microsoft COM. Fully working implementation. Would have solved lots of future C++ ABI upgrade problems in BB10.
Unfortunately, my colleagues at BlackBerry at the time reacted very similarly to how COM was reacted to in Microsoft when it was presented. COM only became what it did because a senior manager in Office went ahead and adopted it anyway despite the negative reaction. And that forced everybody else to use it, and before you knew it, everything on Windows had to be COM. And then the COM designers were being showered with accolades and given cheques of cash bonuses in gratitude.
But yes you're right, I do think Microsoft COM is underrated and if C++ adopted it into the language, it would make a very substantial improvement to C++. Politically impossible, unfortunately. Gaby dos Reis
Well, you know.. that sort of a mechanism is not going to solve ABI issues now and forever. I have written one for another phone vendor, and they shipped it on a couple hundred of million devices. I didn't make it interface-only, it allowed you to get from an interface to a concrete non-virtual API, because that's an inevitable practical need for quite many users. And for quite some other users, it's an unbearable burden to have to go through interface indirections for an API that you never ended up needing to extend in ways that the purported ABI freedoms provided by such a beast allows. Are you going to make std::string a COM type with interface indirections? tuple? pair?
tried to effectively propose a modernised COM for C++ Modules originally, and to say that went down like a lead balloon would be putting it mildly.
I have absolutely no idea what you're talking about there. I cannot find a Modules proposal that does anything of the sort. Please point to the proposal you think you're talking about.