| ▲ | antonvs 2 days ago | ||||||||||||||||||||||
COM is cross-language, though, and cross-process, and even cross-machine although not often used that way these days. Life is definitely easier if you can restrict everything to being in the same language. | |||||||||||||||||||||||
| ▲ | vintagedave 2 days ago | parent [-] | ||||||||||||||||||||||
Delphi was designed to be COM-compatible, so the vtable layout was compatible, for example. Its interfaces, via the inbuilt interface keyword, use COM-compatible reference counting. It has inbuilt RTL types for handling a lot of common COM scenarios. It did this back in the 90s and remains extremely useful for COM still today. Then late 2010s, C++Builder (its sister product) dropped ATL to DAX -- Delphi ActiveX aka COM -- and using COM from C++ uses the same inbuilt support, including keyword suggestions and RTL types. It's not quite as clean since it uses language bridging to do so, but it's still a lot nicer than normal C++ and COM. Seeing someone do COM from first principles in 2025 is jarring. | |||||||||||||||||||||||
| |||||||||||||||||||||||