Long ago, I was pointed to a most insightful post about coding culture at Microsoft (Bill's company) compared with Apple (Steve's company). They observed that at Microsoft, there is a tendency is to use trees as the preferred data structure. Trees are certainly convenient and appropriate for many underlying representations, and are generally easy to manipulate. At Apple, on the other hand, there is a tendency to use hash tables.
Trees tend to impose a hierarchy, enforcing a one-to-many structure (regardless of natural relationships). Hash tables are a looser form of association, which don't necessarily impose structure. This distinction tends to reflect a subtle but significant difference in the underlying philosophy and approach to problem solving and architecture.
