Every programmer is aware of the language war that has been brewing of-late; unless he/she has been living in a swamp far away from civilization. Java's overwhelming dominance over other programming languages is under serious threat; and even the most vocal Java advocates understand it though reluctant to admit in public.
First salvo was fired by Microsoft with the introduction of C# , .NET SDK and by allowing scripting languages as first-class citizens under .NET runtime, a privilige long denied to them under JVM thanks to SUN's limiting NBH (Not built here) vision. C# not only emulated Java's most successful features, but also came up with several handy features like Autoboxing/Unboxing, Explicit interface implementation, properties, variable arguments, friendly-for-loop and so on. SUN, which had been reluctant to add these much demanded features (by programmers), was finally forced to add these features with Java 5. The hurried introduction of 'genericity' before it's C# advent is a sign that Sun takes the threat seriously.
On the other hand, dynamic languages have grown in popularity, thanks to the success of PHP and newer OO languages like Ruby and Python. Though more focussed on Web development, the collective mindshare developed is significant, and considering most apps developed these days are indeed web apps, they indeed pose a serious threat to Java's dominance over server-based programming.