>
Forcing one brace styleThis has been discussed numerous times on the mailing list. The answer, for good reasons, is too bad. As you note in your conclusion, consistency is prioritized above configuration.
There's reasons for this, they were meticulously debated and chose by the designers to help people out. If you have a pure Go project, you can install it anywhere Go is available in a single command. No autotools, no makefiles, no build-essentials, nothing. Just a single `go get` command.
If you ever work on a decent sized project in Go, you will quickly come to appreciate the enforced consistency across the project.
>To use the Go tool you are required to have your directories set up in a specific way
Not with the binary distribution. And "have a source directory on GoPath" is too restrictive... set `GOPATH=~` and for 90%+ of users, their existing dir structure is perfectly fine.
>No support for using user defined types as map keys
This is no longer true IIRC.
>Two initialization functions, new and make. One returns a pointer, the other a struct.
I don't understand why this is a negative?