Because Go == Google, and when has Google "asked the user" before slurping data?
If they are going to do it, it should only ever be on an OPT-IN basis.
Because Go == Google, and when has Google "asked the user" before slurping data?
If they are going to do it, it should only ever be on an OPT-IN basis.
The reasoning for not making this opt-in are in the blog post and I find them reasonable.
Opt-Out is simply not acceptable.
It's not about how interesting the data is to them, it's about the hubris of believing they are entitled to every last bit of our data.
In general, when looking at telemetry data, you can't stop at asking "what possible use would the org collecting it have for it right now, in their current business model". You need to also ask what use they could potentially have for it in the future, especially combined with other data they have access to. A year from now, or five years from now, or after a pivot, or after partnering with (or buying) a company in a different industry, or after leaking (or selling) it to third parties.
When you ask these questions, I think you'll also conclude that enabling telemetry by default and pinky swears they're not doing anything naughy with it is not good enough. You may trust the people doing it now, but as experience shows, business priorities change, people in charge change, but the collected data remains.
There's many ways to get valuable data for ad targeting, this is not one of them.
If they want to turn bad, they can just use the dependency proxy.golang.org / sum.golang.org that already exist for a long time. Or gather data on things running in Google Cloud. All of these would be unlikely, and bigger levers than gathering some data from a few Go developers.
The pushback here may seem paranoid for the specifics of this particular case, but that's because it comes from a more generic and IMHO perfectly justified position of treating all telemetry as risky by default, and all attempts at making it opt-out as wrong, dangerous, and likely malicious.
The arguments "for" are all based on assertions about this particular case at this particular point in time. The data to be collected is benign. Collecting it will translate to meaningful improvements being delivered faster. The people behind the project are all nice and reputable. And so on. In contrast, the arguments "against" cover the possible future evolution of the telemetry itself, as well as the project and the people behind it. The set of metrics and reporting frequency can change. The goals behind it can change. The nice people might turn naughty, or be replaced by scoundrels.
The arguments "against" include, in particular, building the precedent and infrastructure. From that point of view, you saying:
> set of static, anonymous metrics, updated _once_ a year from a tiny fraction of developers is not worth the effort to even ingest into some targeting system
sounds to me like me saying "this browser extension, which code I audited myself, is only reading the account numbers and names from my banking page - it's really not worth anyone's effort to do anything naughty with it, so there's no reason I should be afraid of giving it full read and write permissions for the banking page, and no reason I shouldn't leave the 'auto-update' checkbox on".
They made their case against it, and I can even understand the reasoning behind it. Doesn't mean I have to agree though.
* When you run `git init` without having configured default branch name it warns you with a big wall of text.
* When you run `git commit` without having configured a user, it warns you with a big wall of text.
* When you run `git pull` without having configured the strategy, it warns you with a big wall of text.
As much as I want to give them the benefit of doubt, this really comes off as wanting to silently enable it by default, because they know that if they actually ask in a similar way that `git` does, the answer will be "no".
And AFAIK it didn't add telemetry to send used commands to any server, even if that would have been by far the easiest way, given 90% of devs use it and complain about how bad it is.
It's an arbitrary percentage, but it gets the point across. The amount of devs using git is probably at least an order or magnitude higher than those using Go.
Go, on the other hand, already has decent-ish tooling (at least better Git), but it wants to add opt-out telemetry anyway.