While wages I am sure do play a factor, as former a hiring manager I can tell you the GP is 100% correct. Older and younger programmers both have their pros and cons. Younger programmers are nearly always more up to date on the latest technologies and trends and have an innate ability to "churn out" fairly good quality code at a lightning fast rate. However, they are nearly always inexperienced compared to their more seasoned peers, and make a lot of what I would call "elementary mistakes" when it comes to architecture. They also have a tendency to *always* want to use the latest and greatest tech instead of the tried and true, which is not always a good thing.
Older workers have the opposite pros and cons. They tend to take a bit longer to finish a project, but that project is usually of higher quality and better architecture because they have been around the block and know how to code for the long term. They also like to stick with the tried and true technology because they know it, and it works.
Ideal teams have a healthy mix of both young fresh employees and older seasoned ones. A good manager knows how to create this team and get them to work together to bring out the best of the young and old, and how to get the seasoned professionals to help teach the young employees about enterprise architecture, while the young employees can help keep the older employees fresh and up to date on the latest technology trends.