Shameless plug: I am the author.
Well, when software supports this standard, you as a user have a way to not confirm to it by setting the env variables to whatever you want, even per app. So you have two choises, either use it as is or change it.
But if software doesn’t supportthe spec, there is no choise of using it. So ons choise less.
This standard makes your software’s paths user-configurable, giving users a choice.
And if I don’t agree with how that standard is implemented? I should have the choice to use something else. Isn’t that how everything works?
You can of course not give users a choice. And a lot of applications do their own thing, having their own variables like GOPATH
or a cli option like --config
or some way to do that in a config file like Idea IDEs. But implementing XDG from start is miles simpler for all parties, it’s good practice to have your paths and variables somewhat organized in code anyway.
To conform to a standard or do something else are each a choice. If you can justify your choice then perhaps it’s a good one.