Starting this fall, the College Board's Advanced Placement exam for Computer Science will shift from its current focus on C++ to use Java as the programming language for the test. I suppose it's good to see the requirements evolving to reflect real-world demand for skills, but I can't help but think that a more accurate preparation for business use of computer technology would require the use of a simple scripting language to tie together larger pieces written in multiple programming languages. This model is common to the LAMP platform and to many parts of the .NET and Java ecosystems, and is much more likely to lead to a career path in integration, management, or planning of technology deployment. These skills will be especially valuable in the market that these kids are graduating into after college, where many fundamental programming tasks in languages like Java and C/C++ will be outsourced overseas to countries like India, Israel, and Russia.
I'm not ignoring the importance of classic programming skills or the fact that applications and frameworks created in those languages are essential. They're critical, but just as we've seen with the hardware they run on, which is also critical, they're subject to being commoditized. In short, teach them to lead and to see how to connect pieces, not just how to make pieces. Anything less is selling them short.