I think the style of choosing both of these players is just primitive and a very bad method. For the home run derby, I don't see why each league can't just have their top four homerun hitters represent them. Instead, we have unworthy captains picking unworthy contestants. In the National League, David Wright, who has a whopping eight homeruns, is the captain. On baseball tonight yesterday, one analyst predicted David Wright would pick Giancarlo Stanton, Bryce Harper, and Justin Upton, none of whom, are in the top four in homeruns. Why wouldn't Dominic Brown go? He has more than twice as more than David Wright. In the American League, one analyst had Robinson Cano picking Chris Davis, Mike Trout, and Adam Dunn. I'm not sure why Edwin Encarnacion and/or Miguel Cabrera wouldn't go. The whole system is flawed. Take the four players who have the most homeruns and be done with it. It is only fair that way.
Voting people into the all-star game is just a defective technique too. This game of stars actually means something and we are letting the fan-base choose who gets home field advantage in the world series. First of all, it's a popularity contest. Derek Jeter could hit .180 and still start in the all-star game. Fans pick who they like, not necessarily the best players. Second of all, voting takes time, and hitters could go into slumps over the course of the first half. A player could have a monster April and May, go into a slump by June. By the all-star game, he's hitting .250 and not worthy of an all-star selection, yet he still gets selected. I'm not sure why front office executives, writers, analysts and coaches can't select the best player at each position a week before the all-star game. No voting, just a first-class elimination process to decide who represents their league.