Interview with Google Go Language lead Rob Pike
thechangelog.com
thechangelog.com
This is troubling because I've written a couple libraries for go, and it would be awesome to have something similar to rubygems or pypi to distribute them.
Exceptions always comes up as the big one, but the more subtle part of a concurrent system that erlang did really well was allow you to monitor processes for crash. You can abort a goroutine early, but nobody can hear about it.
Of course, you can also segfault the thing using a null pointer dereference, but you can't do anything other than have your entire application fail.
Go's overarching principle is "to reduce the amount of typing" and "reduce clutter and complexity", but if you switch from something like python or ruby to go, you'll quickly notice there's a lot more typing and complexity for programs. Especially when it comes to stuff like type declarations and error handling.