Defaults are part of the interface

The common path

Good defaults make the common path obvious and safe. They should express what the program believes most people mean, while leaving an honest route to the less common cases.

The difficult part is resisting defaults that merely hide uncertainty. If the program cannot infer an important choice, asking once is kinder than guessing forever.

Configuration has a cost

Every option adds documentation, combinations, and states that future changes must preserve. Before adding one, it is worth asking whether the underlying behavior is actually stable enough to deserve a permanent switch.

Thanks for reading. If this sparked an idea, keep it moving. Browse the archive.