Disguised as a friendly shortcut is another coupling smell.
TL;DR: Optional Arguments generate a hidden coupling in the name of smaller code.
Problems
Coupling
Unexpected results
Side effects
Ripple Effect
In languages with optional arguments but limited to basic types, we need to set a flag and add an accidental IF (another smell).
Solutions
- Make arguments explicit.
- All function calls must have same arity.
- Use Named Parameters if your language supports them.