Why Godot isn't an ECS game enginge

I'm interested in the performance / implemenation side of ECS. How do I not have to iterate that array to find the component each access? In OOP I can implement a VTable for virtual member functions (and variables).

The object's array of components could have changed between accesses, so an ECS, how do I avoid iterating multiple components to find the one I need every time? That doesn't seem like it would be more performant, yet people keep saying it is more performant than OOP (what kind? dynamic member/var lookup ALA VTables? Certainly not non-virtual OOP having statically placed properties with no lookup table / hashmap / component array to iterate.

Meh, I've worked with ECS systems, and they can simplify some things, but try debugging a complex ECS system sometime. A weapon adding a status effect as a component to the attacked entity is cool, but when I had to trace down and recreate the exact combination of components that caused the bug, it reminded me of chasing Hiesenbugs as seen in multi-threading. Bugs disappeared once I try to find them, some bugs (many actually) depended on the order of the components in the entity's component collection...

/r/gamedev Thread Parent Link - godotengine.org