I think optional arguments are a broken idea, because the optional value may be sensible or correct most of the time, but there will be a time when that good value suddenly becomes wrong. The effort to FIX this mistake now results in a lot more work that could have been saved if the optional was always required from the start.