Steer like a bicycle, race like a car

Today I did something I should have done years ago. I’ve had all the pieces for quite a while, but I had never quite gotten around to putting them together. Now I wonder why I didn’t do it sooner. I’m sure you’ve had the same feeling.

When I develop my little computer graphic programs (like the gear example from yesterday), there is generally a trade-off: Either I can approach them in a way in which everything runs super fast (the “compiled” approach) but making changes is slow and clunky, or I can approach them in a way that runs a lot slower (the “interpreted” approach) but changes to the program show up pretty much instantaneously.

If you think about it, this is a difficult trade-off to navigate. If everything runs really fast, you can create far more exciting and interesting things. But you find it too slow or awkward to make little tweaks and changes, then it becomes hard to perfect your design.

It’s kind of like the difference between driving a big automobile and riding a bicycle. The car is powerful and fast, but the bike is far more maneuverable.

Today I figured out a way to make selected parts of my Java programs act like a bicycle while I’m tweaking them, but then like a big car when I am ready to put them out into the world. This means that I can make super fast design iterations, and still end up with something fast and powerful when I’m all done.

This makes me very happy.

Leave a Reply

Your email address will not be published. Required fields are marked *