- I too dislike the lack of a ternary operator. Python has this problem too (you can create boolean expressions to sorta mimic it but it doesn't tend to be considered "Pythonic"). And brevity is my reason too. I'm sure it's easier to parse without it but it can't be that hard.
- On the "damnable use requirement", I see his point. If anything, it means that Go will be better used with IDEs than text editors that'll do this for you automatically;
- On the "thread safe set", yeah he's Doing It Wrong [tm] (which I think he knows). You use channels to share state in Go rather than creating shared state directly.
- Unbuffered channels seem to be idomatic. Race conditions and deadlocks seem to often be the result of using buffered channels;
- On his channel reads issue ("violating time and space") I disagree: it's good to have blocking and non-blocking channel reads.
I basically agree with his conclusions, particularly in Go feeling like a "modern C", something I desperately hope succeeds.