I don’t usually cook. Instead I program.
That might not make much sense to you, but to me it makes perfect sense. The sort of experimentation, iteration, trying different things out, the energy it takes to learn how to cook a good meal, I generally put into creating software.
But recently I’ve become a bit obsessed with perfecting a particular recipe. I’ve been trying variants on it, spending time in my kichen changing proportions and cooking times, adding and taking away ingredients, varying the order of things.
I recognize this as the same process I use for developing software. Some of that process consists of building tools, support code if you will, and some of it consists essentially of creating a space of parameters, and then tuning those parameters until they are just right.
Of course there is an essential difference in the nature of the code / test iteration cycle. When I am working on a computer graphics project, I can conduct dozens of experiments in an hour. Cooking doesn’t quite work that way, because it involves a different set of senses.
After all, my eyes can take in a vast number of different images in the course of a day. But during that same day, my stomach will only let me eat so many meals.
Alas, there is no Moore’s Law for food. Unlike computer graphics, cooking is hardware limited.