I've implemented an entity system myself that uses array accesses to look up the components on an entity. Indices within the system to perform iteration over entities with specific component types are also maintained. Together these things are performant enough for me to render 10000+ things at about the same framerates I used to on an older engine that didn't use entities (and combined everything together). It tends to be 1-3 ms slower but that may also be changes in rendering.

Either way, the point is that entity systems can be faster than what he presented. I also believe he strongly recommended using something other than a plain Map for the storage.

I can't quite see the use of this system over fairly ordinary composition and visitor patterns, which is fast as hell and totally memory efficient...? I mean, just how complex do we imagine game entities actually are?

Yes, using Map to lookup components in each iteration is a bad way to go IMO. I can't see how each of the system can keep references that each component needs, it will always have to look it up in the map for the entity. There has to be more knowledge in the components than just pure data, as adam suggests, e.g. references to other objects at least.

In my "entity system" each component has a initialize method. In it I resolve all dependencies that the component needs, so when it's updated I don't need to ask the map.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org