The majority of game programmers are mediocre at best because the big money is in software (not game) development. A talented programmer who works in games would only do so because he has a lot of passion for it.
Yeah, you're looking at about 20% wage gap between a gaming studio and, say, a financial software company (for a junior programmer position, it gets even bigger for regulars and seniors) where I'm at. Generally, almost everyone (not just programmers) working in game dev do so because they want to make games, not because they want to make money (though, obviously, they aren't going to work for free either. Gotta feed a family and all that). The reason for the longer development times is because the studios tend to be a lot bigger than those "teams from a garage" everyone seems to be harping about, and organization and communication turn out to be MASSIVE hurdless that can easily consume more than half the development time. Coming to an agreement (and, especially, trust in their work) between 5 guys in a garage is in entirely different ballpark from doing that with 60 people, not to mention each of those people has a lot smaller idea about what's the state of the other parts of the project, and VERY different ideas of where the project should be headed. This leads to frequent redesigns of core features, necessiating scrapping months of work.
As for why the studio needs to be so big to create a not-so-big game, it's because that people's standards when it comes to technical side of things have simply increased, and not just in the graphics department. There's very few games today that have only core mechanics, more often than not there's a shitload of various "smaller" mechanics, which however can easily cost just as much development time as core ones. RPGs now routinely come with crafting systems – you may stick your nose up at it, but the fact remains that most of the market expects it to be there, so it is being developed. People expect hundreds of quests and thousands of items, they expect massive enemy variety (with different models and different behaviors), they expect a better AI than "take the most direct route to player once he gets in range, deal damage on touch", they expect reputation systems and companions and all sorts of other shit, and all of it needs programmers to implement it, artists to create the models and textures, sound developers for audio, designers to create the actual content, and to balance the enemy stats, economy, etc., and that's not to mention QA, marketing, customer care, possible analytics (if you're making a multiplayer game), HR, management, etc.