On a daily basis, I support apps written in PERL, Java, .NET (VB.NET and C#), classic ASP, VB6.
A good programmer shouldn’t have a difficult time learning new languages, even those they’ve never used before. Also today, being a “heads down” coder isn’t enough....you also need to be a business analyst, and a project manager, and interface with your users.....”Heads Down” coders get outsourced.
Actually, I have to disagree about the “heads-down” piece a bit. Focus is, imo, the one ingredient most technical people lack. They are always hedging their bets by learning a little about a lot of different things. Finding, and staying centered on, a few things and acquiring real depth in those areas is uncommon and therefore valuable.
There is a lesson in the life of Michael Burris. Look him up. I won’t tell the story, except to say this person is focused to a degree most people don’t aspire to. I personally also focus, and have deliberately refused to be involved in many common activities, just because they are on balance a waste of time. My life, imo, is stronger because of this. Some things I do are indeed a waste of time...except that after doing them for 10 or so years, one develops a kind of accidental expertise in that area. Go figure.
Maybe I am just lucky but I make good money keeping my head down doing java development and I am into my 50's.