logoalt Hacker News

mohamedkoubaatoday at 3:12 PM1 replyview on HN

Given OOP, the only ABI for an object is a vtable and that is left unspecified (for good reason) by the C++ standard.

COM said, "objects are cool and modules are cool so we need an ABI for objects" and specified a vtable. It isn't the only programming model which continued from the same observation: Python did too with its absolutely abysmal leaky PyObject ABI


Replies

pjmlptoday at 3:23 PM

SOM predates COM, and is even cooler, as it supported class inheritance, metaclasses and Smalltalk as target language.

On OS/2, Smalltalk enjoyed a role similar to what would be .NET and VB on Windows.

Sure you can use delegation with aggregation, and type libraries (nowadays .NET metadata), but still isn't as ergonomic.