The Go programming language was released 10 years ago. Some people love it, some people hate it. You can’t please all of the people all of the time, but I’m pretty happy with it, despite its obvious flaws and its subtle flaws.
One of my favorite opinions about Go was written by Jason Moiron in 2015. The long version is a blog post titled “For Better or For Worse”. The short version is a tweet:
You’ve missed the point if you agree that “#Golang is badly designed” and “People find it easy to write good software in #Golang”.
When I first encountered Dungeons and Dragons as a kid, I didn’t understand the difference between Intelligence and Wisdom. Either you were smart, or you weren’t. These days, for a programming language, I consider Go relatively low INT, high WIS. That’s not to say that Go is perfect, or that high INT things aren’t valuable. But I believe that there’s wisdom in Go’s approach.
My colleague, Evan Martin, once wrote:
People who are attracted to things like new programming languages tend to have an attitude that new things are usually good, and focus on the benefits.
Other people (and I argue this is a perspective that correlates with maturity, shared also by e.g. security and Site Reliability Engineers) tend to have an attitude that new things are usually bad, and focus on the costs.
This means these two groups talk past each other, using different language entirely. The first group says “it’s so awesome, look at features X, Y and Z”. The second group says “the last time someone tried a thing like this, it caused problems A, B and C”. The first group laments “why doesn’t anyone recognize how important feature X is” without comprehending that they’re playing the wrong game entirely.
Evan was talking about new programming languages and their adoption in large organizations, but that insight is more broadly applicable. “The XY Problem” has already been coined to mean “asking about your attempted solution rather than your actual problem”. Perhaps we could use “The XYZ ABC problem” to refer to (repeatedly) emphasizing something’s benefits when others are primarily concerned about its costs.