Programming metaphors

Writing a library is like creating a recipe.
  • It takes a good amount of experience to write a good recipe.
  • You make recipes out of recipes
  • Once a recipe is written, it reduces the number of commands you have to give to create something.
  • A recipe is perfected over time, and everyone reusing it benefits from it.
  • If you want to make a recipe with other recipes, you should know what the other recipes have in them. This is not necessary if you are just following a recipe.
Libraries and recipes are abstractions. The difference is that you need people to understand and follow your recipes, while you only need computers that understand the language you used to define your libraries. Some particular browsers are what you'd call "whimsical cooks" but that's another story.

Writing an interface is like making a chair.
  • It looks very easy. You just have to know how to cut and nail things, right?
There is a pervasive tendency to underestimate the amount of work and experience that goes into writing an interface. This ranges from writing markup and CSS to JavaScript and tying all this together.
There are rules you follow which are acquired by experience. Too many gotchas prevent you from doing it right the first time (or 100 times). UI design is not just putting strings in tables with images and colors, mmkay?

No comments: