I’m not sure I understand, what’s the difference? I’ve never had any problems using go programs’ command line flags myself.
The application in question is using -generate rather than --generate.
The standard on most UNIX-like OSes is that long options, e.g. --long, have two dashes, and short options, e.g. -l, have one.
It allows you to combine multiple options into one. For example, the following two commands are equivalent:
$ ls -laF
$ ls -l -a -F