And no one is around to hear it, does it make a sound? If we’re talking about software development, the answer is only if we want it to. I’ve been hard at work slingin’ code for the “Item Properties Palette” that will be a core feature of “VDC CAD” and “VDC REVIT”, my work-in-progress Fabrication AddOns. With software tools like this, speed is a primary focus.
When developing modeless dialogs that provide real time selected object data, we need it to be as fast as possible so we don’t slow down the user. That means we need to retrieve the data were after and no more, with zero fat. This also means we need to decide which features we want to keep, and which features we are willing to sacrifice.
We could iterate the entire set of selected items once for each data field on the palette, or we could iterate the item set once for the whole thing. The answer seems obvious but we wouldn’t always care about this sort of thing when developing other tools. We often use LINQ and the NET framework to write less efficient yet easier to develop and maintain code. Most of the time this is plenty efficient on today’s modern hardware. The rest of the time, we only listen for the trees that we care about.