The table below will help you determine which language is most suitable to a particular task.  Follow the links for more information.

Mobile phone apps and games Java (specifically J2ME), some PDAs support C++
Complex animations and games embedded in web pages Actionscript
Windows only application development C#
Cross platform application development Java
Embedded software (software for appliances and machines) C, C++
Server-side programming C# (specifically asp.net), PHP, Perl, Java
Computer games C++
Network communications Java
Special effects on web pages Javascript, DHTML
Resource intensive tasks e.g. audio, graphics, video C++ (and to a lesser extent these days, Assembly Language)
Learning to program Basic used to be recommended
Desktop user interfaces C++
Kernel or device driver development C (C++ considered fanciful)
Web 2.0 Ajax (a term that covers a multitude of sins, for an expression that does too)

 

Books: