And the reason this annoys me in particular: it's clear that we would agree a lot more, a lot more often, across different aisles of the ideological spectrum, if we could get to speak in the same terms without giving away any collective bias upfront. But most people don't seem to do that, they stick to their own definitions and then feel the need to defend themselves against this evil strawman at the other side, that is probably doing about as well and is about as much of a violent kind of folk as themselves.
We need to stick to something and coordinate. Maybe not, like, universal definitions (academic or from everyday use) that cannot be violated in any way whatsoever. But at least to know that we're on the same page when we're talking to someone.
This one is a personal pet peeve of mine. Prescritivism > descriptivism, makes sense. But then people, just, refuse to agree on meaning, while pretending they're all thinking of the same thing. And that's not how any of this works.
In case you wonder, I haven’t talked about the Go drama until now because I don’t know what data is collected, but I sure know it’s often something irreplaceable when you’re building tech for millions or even billions. Not like I want to trust Google (or e.g. Microsoft with .NET) on this one, but others like Mozilla have their reasons to do it and be as open and transparent about it as possible.
Maybe tech should just not be as big and globalized. Maybe it shouldn’t be assumed to respond to issues as fast as humanly possible. But it is. And yeah, anyone who has ever worked on a call center or tech support probably understands at least some of the issues with relying solely on user reports.
I feel the levels of complexity at which society work these days makes collecting data about program behavior harder and harder to avoid. I hope I can somehow get away with not tracking if I ever work on software that makes it big.
@scottjenson It's worth noting, btw, a lot of Haskell has permeated into other languages: lambdas (anonymous functions), list comprehensions, map/filter, and even monads (such as Option), typeclasses (like Rust traits and Swift protocols) and currying. But Haskell still forces you into that mindset of "reduce everything to a minimum, describe what you want instead of how, never leave globals ever", and it expresses it pretty well.
@scottjenson I've definitely struggled! Trying to know when to . or $ or () is a challenge, the error messages are dense and need some parenting at first, learning about language extensions unironically demands PhD level expertise, the library ecosystem is a bit hard to navigate across – and that's already on top of getting a functional mindset in the first place.