Is there a historical reason why both are used ? Yes. -- is "traditional" for long options (a GNU invention quite a few years ago). When I implemented them for TeX, also quite a few years ago, I just used getopt_long_only so that either - or -- could be used, seeing no harm in it. I saw no point in inventing single option letters.