Go was one of the languages I got excited about at one time, then walked away from because of the crazy compiler strictness. I ranted about it somewhere (I think I likened it to "driving while having to swat mosquitos with both hands" -- very distracting) but I don't think I went far enough in criticising the designers
does much better -- it even psycho-analyses them!
quote: "Reading Go’s mailing list and documentation, I get a similar sense of refusal-to-engage — the authors are communicative, to be sure, but in a didactic way. They seem tired of hearing people’s ideas, as if they’ve already thought of everything, and the relative success of Go at Google and elsewhere has only led them to turn the volume knob down. "
Other quotes (please read the article for context): "feels like it is designed by an obsessive personality", "designer went too far, to the point of being antisocial", and "Rather than debate or engage, it was easier to make a new language and shove the new rules onto everyone by coupling it with Very Fast Build Times, a kind of veto-proof Defense Spending Bill in the Congress of computer programming."
And closer to the effect
than the cause
of all this: " the Go compiler's overt pedantry is a significant hindrance to trying out ideas with code". Exactly!
I had the idea that an easy solution would be: make "go run" be lax, and "go build" be strict. That would also fit right in with the "quickly test some code out" meaning of "go run" versus the more "production build" sense of "go build".
But the tone of some of the mailing list conversations I saw (or specifically, replies from the go bigshots on various threads) were such that I did not even bother to actually post that. I already knew what the response would be (if there was one at all).