I get the feeling the Go language creators defined the Go language syntax in many cases so that it explicitly looks different than the corresponding C syntax. Why?
(Yes, I know Rob's and Ken's history with regards to C.)
"map of int to string"
map [int] string
"map of state to map of int to state"
map [state] map [int] state
In Rich Hickey terminology, it seems people reject that it is simple (non-interwoven) because it does not strike them as easy (familiar / close to hand).
It's important to note that a lot of C programmers don't really understand the C declaration syntax anyway. Most are familiar with the simple cases, very few are familiar with how to declare complex types.
I can barely read this:
void (signal(int, void (fp)(int)))(int);
I can read this easily:
func signal(int, func(int)) func(int)
(Yes, I know Rob's and Ken's history with regards to C.)