>>117
In a nutshell:
1. You have to game the runtime in order to make sure scheduling is done effectively.
2. I have a collection of dynamically allocated channels I need to poll. The official solution is to spawn a number of goroutines to select on them in static groups because the existing select is O(1) and it would be a shame not to use that, or alter its behavior to cover new areas.
3. It's a concurrent language without a whit of tail call elimination.
4. The near elimination of semicolons is a compromise between the stupid and the unnecessary. It's a flippant decision.
I could go on, but honestly I'd probably STFU if just the above was fixed. #1-3 are dealbreakers, #4 is just supremely annoying.