5 ms·
The idea did take off big-time, just not at the level of C++ compilers and in a more modest way than envisioned. Java and C# both provided reflection interfaces
by TimSweeneyEpic 3y ago
The idea did take off big-time, just not at the level of C++ compilers and in a more modest way than envisioned. Java and C# both provided reflection interfaces to implement many of the motivating examples for meta-object protocols. Qt (user interface) and Unreal Engine have elaborate semi-automated systems for gathering metadata about C++ objects in order to manipulate them reflectively.
The architects of these systems definitely took inspiration from these meta-object protocol papers and related LISP and Smalltalk efforts. Nobody quite took it all the way, and I suspect that's because the boundaries between compile-time reflection, use site checked macro programming, and declaration site checked type level programming are quite hard to pin down in such a general system.
- pjmlp 3y agoAnd SOM, COM and CORBA. Unfortunately to this day, COM tooling remains quite clunky, despite how much WinDev pushes it since Windows Vista as main API ABI.
- diegoperini 3y agoUnreal Engine actually applied the idea to implement distributed objects transparently. It is decent enough to power most real time multi-player gaming scenarios.