Proposal Details
I'll just drop it here... for years I've been quite envious of Python's "import this" easter egg, which prints the Zen of Python when invoked. We don't have an official "Zen of Go", although we have an excellent article by our dear @davecheney with the same title. I think the closest we have to a widespread "zen" are the Go Proverbs.
My proposal is pretty simple. The user type:
$ go doc proverbs
And it gets a nice output:
Don't communicate by sharing memory, share memory by communicating.
Concurrency is not parallelism.
Channels orchestrate; mutexes serialize.
The bigger the interface, the weaker the abstraction.
Make the zero value useful.
interface{} says nothing.
Gofmt's style is no one's favorite, yet gofmt is everyone's favorite.
A little copying is better than a little dependency.
Syscall must always be guarded with build tags.
Cgo must always be guarded with build tags.
Cgo is not Go.
With the unsafe package there are no guarantees.
Clear is better than clever.
Reflection is never clear.
Errors are values.
Don't just check errors, handle them gracefully.
Design the architecture, name the components, document the details.
Documentation is for users.
Don't panic.
See https://go-proverbs.github.io/ for more.
I would also add the unofficial proverb "accept interfaces return concrete types" as an easter egg of the easter egg.
Comment From: seankhliao
Those are more suited to style guides rather than in the go command.