Lists Home |
Date Index |
>the accepted wisdom that premature optimization is evil?
Here's what that accepted wisdom means: A well-structured program is an
important prerequisite for optimizing dynamic evaluation, because it leaves
you the flexibility to optimize precisely the things that a profiler tells
you are the bottlenecks, and the resulting code is still maintainable.
But optimizing dynamic evaluation is also a kind of design, and it is is
not the only kind of optimization.
All design is optimization. In the early phases, it is best to optimize the
understandability of a model and its applicability to a variety of usage
scenarios. The most important bottleneck is often the human being who needs
to deal with markup. Is the markup hand-edited? What tools are used for
this editing - is it harder to work with attributes using these tools? Will
a human being need to look at instances and write programs or formulate
queries? If so, hiding the real action in the PSVI or Information Set may
be a problem. In some few environments, it may also be important to
optimize for certain desired mathematical properties.
Human beings, editing tools, and mathematical properties are rather
inflexible. It's good to plan for them early on.