Null is a good default value for flags you require the user to set : the value will remain null unless the user specifies --flag-name on the command-line, in which case it will necessarily become non-null (but potentially an empty string).