> Specifically, now every caller to this function has to pass in a mode value, even if the file exists, even if they don’t really care and are happy with a default file mode.<p>Wouldn't this be solved by allowing for optional arguments (which go doesn't seem to support)? Also, why not just _explicitly_ set the file mode, even if the file still exists (as otherwise it would fail anyways)?
> Sometimes it’s better to be explicit than abstract.<p>This is a false dichotomy: after all, "open" is explicit and abstract (w.r.t. actual file systems).<p>The original article from Metz was interesting, but the example here is disappointing. The code was apparently used only once: why generalize?<p>And if you want to generalize, why not make use of two functions: a new one which implements "touch", and the existing os.Chmod?