If I understand it correctly, the major problem with programming a Go playing alogrithm is the huge number of branching possibilities. There are simply too many to keep track of. Chess is probably easier to develop algorithms for because there are more rules to constrain the scope of possibility. I found some numbers. There are 2.1×10^170 legal positions in Go, and less than 10^50 in chess.
Hmm. I just read a bit on it to refresh my memory, and it mentioned that one of the problems with computers and Go is the high degree of pattern matching required. That makes a lot of sense. The human brain is so good at pattern matching that it can find them where they don't exist. That's why

looks like a face. No computer yet developed can match the human capacity for pattern recognition. On the other hand, few humans can stand up to a computer's capacity for crunching numbers, so when the number of branching possibilities is reduced, computers can beat humans at games nearly every time.