Parsimony

I had a brief but profound thought today about Occam’s Razor: its application can be deferred.

Normally, the razor is applied to find the best hypothesis to agree upon before engaging in conversation about it. Unfortunately, some disagreements are not readily resolved until engaging in some conversation. It may be best to entertain two equivalent hypotheses of different complexity until the point at which the complexity comes into use, the point at which the conversation could be expedited by switching to the hypothesis of lesser complexity.

In software, this is closely related to canonicalization. Take file paths, for instance. My home directory might be represented by any number of strings:

  • ~
  • /home/brandon
  • /home/../home/brandon

Using a single tilde is convenient, but it is not an absolute path, so depending on context the tilde or an absolute path might be preferred. Of course, there are indefinitely many absolute paths to the same directory, using two dots to go back up to the parent, but there is only one “canonical” path to any directory.

It’s perfectly fine to use non-canonical paths, but there will probably come a point where a person tries to understand the path and gets frustrated that it’s not in a simpler form.

Similarly, if you want to believe that things fall to the ground because of Newton’s laws working in concert with your invisible friend Bill, that’s fine, as long as there is nothing observably different than some other correct theory that does not involve Bill. We can start the conversation. We can talk about things falling. As soon as you take time out of the conversation to describe what Bill is doing to a falling object, however, then I can object, based on my time you are wasting, for not describing the falling object using a simpler form of the theory.

Not all conversations require full hypothesis-canonicalization up front, but don’t we all find them more enjoyable?

Posted in Philosophy, Software

Leave a comment