Go returning tuples as a norm and a way to handle simultaneously success and failure is the reason I believe go to be a fundamentally unsafe language. With a single binary return value you must successfully handle two cases, every time you increase the number of return flags, you double the complexity.