h) No exceptions, handle errors yourself: I love the fact that Go doesn’t have the standard exception logic that other languages have. Go forces developers to handle basic errors like ‘couldn’t open file’ etc rather than letting them wrap up all of their code in a try catch block. This also puts pressure on developers to actually think about what needs to be done to handle these failure scenarios.
I concur. Exception handling makes it more difficult to understand exactly what’s going on in your code. It can be easily abused, leading to unexpected behaviours (ie, software defects). Dealing with errors at the point of origin eliminates ambiguity and improves comprehension.