>>9
Continuing on, OOP is rightfully on the decline. There's a popular link going around about how CMU is dropping it from the curriculum as fine-grained OOP is detrimental to parallelism and scalability on modern and future systems. I think that's a bit of an over-reaction, as heavy-grained OOP and a focus on composition of fine-grained components rather than inheritance/polymorphism is still quite useful, even in data-oriented parallel systems.
Either way, you don't want to use associative data structures for anything where you don't need to... those key lookups hit memory all over the place, causing cache misses, and thus have major scalability issues in themselves.