Then it was Java's turn. Their speaker hadn't prepared any examples, and he'd never used .NET. I scented blood in the water. This was going to be fun. It went something like this:
Him: Java is cross platform! Me: So what? We only use one platform for all Java, the Ops guys insist on it. Him: Java is used by lots of large companies including X, Y and Z Me: All of whom write their major products in C and C++ Him: You can use lots of languages on the JVM! Me: So the best thing about Java is that you don't have to use it? Is that all you got?
Then he prepared his killer blow:
Him: Java is not Microsoft! Me: Haha, OK you got me there. No wait, there's Mono...
IMHO right now Java should be considered a legacy language, and Java programmers either assigned to maintenance or those who are good, retrained (not necessarily in C#, there's Scala for example). The JVMs are generally good and if you need a VM language on Unix then worth considering (tho' there are other VMs out there). Personally, I would advise against starting a new project in Java.