I think the difference is that Objective-C is dynamically typed from the start, while Go tries to be statically typed first, with the added ability to work with those types dynamically. The latter leads to a lot of additional and arguably ugly code that I expect scares a lot of people off.