Meanwhile, the game of soccer -- like all major spectator sports -- has been deliberately designed for... spectators. It is designed to give the scant handful of brilliant outlier talents a stage on which to shine. If soccer became too boring to watch, eventually they would tinker with the rules until it became exciting again -- that is how soccer itself was invented, after all. Hence, soccer makes money because it was designed to be popular. Programming, on the other hand, was designed for various other purposes, ranging from personal pleasure to scientific exploration to actually getting things done.
High school soccer players don't make money, because high-school soccer doesn't consistently produce the highest caliber of play. The world's best fencers, or chess players, don't make much money because their talent is difficult for the average spectator to appreciate. And the world's best dancers and acrobats only make money if they are good at self-promotion, or if they plug themselves into a system that was built to create stars, work really hard, and then get some lucky breaks. (See: Jackie Chan. For whom the term "lucky breaks" is well chosen.)
It might be possible to design a programming sport that showcased the talent of the best programmers at the highest level. (In a sense, that's what YC is trying to do, although a startup is a test of more than just raw programming skill. But, then, team sports are a test of more than just hand-eye coordination...) But it's probably pretty hard to make programming as exciting as soccer. So what? Programming is a different game.